c语言 输入多行数据

c语言 输入多行数据,第1张

#include <iostream>

#include <list>

using namespace std;

int main()

{

baiint a,b;

list<int> l;

while (scanf("%d%d",&a,&b)!=EOF)

{

dulpush_back(a+b);

}

while (!lempty())

{

cout<<lfront()<<endl;

lpop_front();

}

}

需要用到list保存结果,因为n未知大小所以用list更合适。

如果是想以比较方便的方式输入数据,可以考虑把多行的数据存在文本文件中,每次使用这些数据的时候,可以直接从这个文件里面读取。

如果编译后生成的可执行文件名为aexe,存放数据的文件为btxt(和aexe放在同一文件夹下),则再控制台(命令行提示符状态)输入: a < btxt 即可。 其中的小于号<,就是输入重定向符号。

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

参考资料来源:百度百科-c语言

C语言中实际上用任何方法(常规库函数)都无法获取回车。因为控制台是在你输入完一行并点下回车之后,把除了回车之外的字符一起送到程序输入缓存中的,你只能用变通的方法,比如一次获取一行、一个字符或一个数字,设置多个输入,那么回车后,它必然会进去下一个输入或者代码块。

例如:用两个scanf命令

scanf("%d",&a);

scanf("%d",&b);

这样就能实现回车后进入下一个输入或者代码块。

不好意思,你的表达不够清楚。

如果是想以比较方便的方式输入数据,可以考虑把你多行的数据存在文本文件中,每次使用这些数据的时候,可以直接从这个文件里面读取。

读取方式可以有两种:

如果是控制台程序(没有图形用户界面GUI),可以使用输入重定向功能。这种方式比较简单,方便。

如果编译后生成的可执行文件名为aexe,存放数据的文件为btxt(和aexe放在同一文件夹下),则再控制台(命令行提示符状态)输入: a < btxt 即可。 其中的小于号<,就是输入重定向符号。

如果是有图形用户界面,不能使用输入重定向功能,则可以在输入的时候使用文件读取函数fscanf

不清楚的话可以接着问题

楼主你应该是说:在一行输入的两个单词中有两个' ',那么输出的两个单词中就会空一行,就像这样:

输入:(用'-'代表' ')

abc--def

输出:

abc

def

原因是:

输入第二个空格后,执行第一个判定时,虽然c!=' '为假,但是c!='\t'为真,所以(c != ' ' || c != '\t')为真,加上lastc==' ',所以整个判断部分为真,输出'\n'

再加上输入后面的'd'时又输出了一次'\n',才出现了空一行的情况。

解决办法:把第一个判定中(c != ' ' || c != '\t')改为(c != ' ' && c != '\t')即可。已调试,请放心使用,呵呵。

大概就这些。有问题请追问。

方法一:将已输入的数据先保存到数组(二维数组)中,然后再进行数据计算并输出结果

方法二:输入时,完成计算,将结果存储到数组(一维数组)中,全部计算完成,输出结果数组。

采用哪一种方法,要看上体题目特点和要求。

如,题目:输入n行整数,输出每行的平均数 (可采用方法二)

用scanf("%ld",&);就可以了

空格和回车一样的效果,你要的只是存储这个数字用一个数组然后进行排序

%lf可以输出16位小数,你要输出100位可以把原数分段存储再输出

望采纳

算法竞赛题目中,由于重定向,最后将会出现EOF,而EOF标志着输入的结束。

为了利用EOF,算法竞赛选手无需考虑到底是什么东西(事实上,很多算法选手到今天甚至不知道这是什么,因为语言和库上知识的匮乏不影响算法竞赛选手做题)。所以我们一般直接当做输入失败处理,利用scanf返回输入成功参数的性质

典型的方法是:

例如每组数据第一个要输入的参数是p,则程序框架会这么写:

while(scanf("%d", &p) == 1)

{

//这里是其他参数的输入和算法过程

}

当第一行是三个数你可能会这么做:

当然了,刚刚那种办法是可以的,但为了使程序更漂亮:

while(scanf("%d%d%d", &a, &b, &c) == 3)

如果会使用EOF:

scanf() != EOF

但是注意!虽然大多数编译器的eof是-1,但是保险起见不要写-1,因为EOF是impl-def的。

输入流对象由于重载了bool,更容易:

while(std::cin>>a>>b)即可。

以上就是关于c语言 输入多行数据全部的内容,包括:c语言 输入多行数据、c语言如何换行输入、C语言怎样连续输入多行数据,然后将每行对应结果输出急求

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9742373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存