看了一些博客后发现对C++获取输入数到数组中有些运行错误,是因为没有加载C的标准库。
其实以下代码使用C语言更加合理,但是C的输入输出过于繁琐,因此使用了C++来写。
代码功能:
获取键入的数字存储到数组中,数字包括正数和负数,不录入空格键和换行符。
代码段:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include<iostream> #include <stdio.h> using namespace std; int main() { int i=0; int a; int num_in[40]; char c; cin>>a; //想要存储的数的数目 while (i<a) { c= getchar (); //获取输入字符 if ((c>= '0' &&c<= '9' )||c== '-' ) //输入正整数、负整数 { ungetc (c,stdin); cin>> num_in[i++]; } } for ( int j=0;j<i;j++) { cout<< "a[" <<j<< "]:" <<num_in[j]<<endl; } return 0; } |
结果如下图:
补充知识:C++把输入的一连串逗号分隔的数字存到数组
需求:
输入一连串数字,数字之间逗号隔开,把数字存到数组或者向量里。
代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <iostream> #include <string> #include <vector> #include "stdio.h" using namespace std; int main () { string s; while (cin>>s){ vector< int >nums; char *str = ( char *)s.c_str(); //string --> char const char *split = "," ; char *p = strtok (str,split); //逗号分隔依次取出 int a; while (p != NULL) { sscanf (p, "%d" , &a); //char ---> int nums.push_back(a); p = strtok (NULL,split); } //printf for ( int i=0; i<nums.size(); i++) { printf ( "%d\n" ,nums[i]); } } return 0; } |
以上这篇C++ 输入一行数字(含负数)存入数组中的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_38228686/article/details/87947983