#include <stdio.h>
#include <string.h>
int mygetchar();
int main(){
mygetchar();
}
int mygetchar(){
int c, i = 0;
char line[1000];
while ((c = getchar()) != EOF && c != '\n'){
line[i] = c;
i++;
}
line[i] = '\0';
printf("%s\n", line);
printf("%lu\n", strlen(line));
return 0;
}
请看我的代码的图片,我的代码只能出现一个字符串和一行文件,但我希望将文件的每一行存储为字符串并计算其长度,我不能使用fgets ,我只能使用getchar函数,请帮忙,非常感谢。
答案 0 :(得分:2)
由于您的代码基本上处理字符,直到它到达行尾或文件末尾,您可以简单地在其周围放置另一个循环来执行每一行。
这就像是:
output <- c("MJS", "EAS", "RJS", "TJS")
或者,您可以逐个处理所有字符,对行尾进行特殊处理(同样,您应该避免缓冲区溢出,并且您应该将公共代码移动到函数中):
int c = '\n'; // force entry into loop
while (c != EOF) {
int i = 0;
char line[1000];
while ((c = getchar()) != EOF && c != '\n') {
line[i] = c; // should really check for buffer overflow here.
i++;
}
line[i] = '\0'; // and here.
printf ("%s\n", line);
printf ("%lu\n", strlen (line));
}