我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:港彩神鹰 > 读入一行 >

scanf(%[^n]读入一行数据 为何出现死循环 求解?

归档日期:07-07       文本归类:读入一行      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  也就是说,当它没有读取到数据的时候,其实返回的是0,而不是EOF,所以你的while循环的判断条件写错了,应该写成0追问改成0后 不会死循环了 可是也没法连续输入了。。。要怎么改 才能每次读一行处理一行 然后还可以继续读取呢 求解!追答#includestdio.h

  展开全部while((scanf(%[^n],str))!=EOF)这句话的意思是,当你输入任意字符时,遇到换行符结束当前行输入,此时该循环还没结束,那么当遇到EOF标识的时候,该循环才会结束。而EOF是文件流的结束符号。而你是在控制台上输入的,所以一直没结束输入(当读取单个文件末尾时,程序才会结束输入),而此时程序会一直输出第一次你算出来的结果(即we are what we do)。这时想自己手动结束,在控制台内按ctrl +z就可以结束了。追问谢谢 知道为何出现死循环了

  C 语言的输入输出流楼上的有了,我直接给你个C++的吧。直接调用C++的getline对象来获取当前行输入。

本文链接:http://chuyenchame.com/duruyixing/616.html