多行输入以及结束输入

您所在的位置:网站首页 输入数组回车结束怎么设置不了 多行输入以及结束输入

多行输入以及结束输入

2024-07-12 00:35| 来源: 网络整理| 查看: 265

这篇文章大多是总结前辈的经验,让自己可以更好的认识这个问题,在文章背后都有原文链接

1.多行输入数据

一般题中要求输入多组数据的意思就是读取数量不定的输入数据(不能确定输入数据的数量),在这种情况下,需要不断读取数据直至没有新的输入为止。

#include int main() { int a; while(scanf("%d",&a)!=EOF) { printf("%d\n",a); } return 0; }

上面是使用C语言的的方法,把输入语句作为while循环的判断条件,当输入数据不是文件结束符(EOF)的时候,就可以实现连续输入 没有明确指出输入什么时候结束 如果是这种情况,我们默认是以“文件结束”(EOF)为结束标志。 可以将上述的EOF改为’\n’,里面改为printf(’’%d,a’’),表示为输入不为换行时持续输入,保证一行输入多个不定量数据。

#include using namespace std; int main() { for(int i;cin>>i;) { cout

str) { } getline读字符串时遇到换行符结束,用于读一整行 char str[BUFFER]; while (cin.getline(str, BUFFER)) { } string str; while (getline(cin, str)) { }

cin/cout要比scanf/printf慢一些,尽可能使用scanf/printf以避免测试大量数据时因为输入输出慢而导致TLE. putchar/getchar要比scanf/printf更快

2.多行输入字符串

包含其他输入后读入多行字符串 例如一些编程题要求先输入字符串行数,然后再一行一行读入字符串。如果正常顺写编程的话,会发现第一行字符串读入的是空,后续才能正常录入每行字符串。   这是因为第一行输入一个int数据后,换行符并没有被忽略,直接被准备读入第一行字符串的getline俘获。   所以需要在第一行输入一个int数据后,调用cin.ignore()忽略下面的一个流录入,将其抛弃。

int N; cin>>N; cin.ignore(); //取消换行键的读入 string strCinLine[100]; for(int i =0;i>N; cin.ignore(); //取消换行键的读入 string* strCinLine = new string[N]; for(int i =0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3