我是C编程的新手。在我尝试编码时,我遇到了这个问题。对不起,如果解决方案很明显,我在这里发布了。
#include <stdio.h>
int main(){
int T = 2;
while(T--){
c = getc(stdin);
while( (c != '\n') && (c != EOF)){
// do some work
c = getc(stdin);
}
}
return 0;
}
我想要的就是如果我在多行中有多个字符串输入,例如,
Hithere
howareyou
Iamgood
然后,如果在读取字符“ hith ”之后,while循环被破坏,则 fgetc(stdin)要读取的下一个字符应来自第二个字符line( howareyou )不是“ Hithere ”中的字符。
实际上,我将在3个不同的行中给出3个输入字符串。和我 必须单独检查字符串以获得某些特殊字符。和 如果找到该角色,那么我将打印它被找到并且 立即停止检查该字符串中的任何其他字符。 同样,检查下一个字符串,然后检查下一个字符串,依此类推。
许多人提前感谢。请帮帮我。
答案 0 :(得分:2)
此行中的逻辑不正确。
while( (c != '\n')|| (c != EOF)){
将其更改为:
while( (c != '\n') && (c != EOF)){
答案 1 :(得分:1)
对于您的第二个问题(将来,请每个问题只发一个问题!)您可能希望使用fgets
读取一行,然后从读取行中获取字符。
答案 2 :(得分:1)
这实际上取决于您运行此程序的操作系统。例如,在Windows中,一行以\r\n
结尾,而在Unix上,它以\n
结尾。