use*_*767 2 c compiler-errors char fgetc
为什么这不编译?无法看到错误
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char *c;
FILE *f = fopen("file.txt", "r");
if(f == NULL) {
printf("Could not open file");
}
while((c = fgetc(f)) != EOF) {
if(strcmp(c, " ") == 0) {
printf(" ");
} else if(strcmp(c, ":") == 0) {
printf(":");
} else if(strcmp(c, "@") == 0) {
printf("@");
} else if(strcmp(c, "\n") == 0) {
printf("\n");
} else {
printf("Not a valid char");
}
}
Run Code Online (Sandbox Code Playgroud)
}
cod*_*ict 11
fgetc 将当前在文件指针处的char作为整数返回.
因此,char *c;应int c;
和
if(strcmp(c, " ") == 0) {
Run Code Online (Sandbox Code Playgroud)
应该
if(c == ' ') {
Run Code Online (Sandbox Code Playgroud)
并同样改变其他比较.
您可以将比较压缩为:
while((c = fgetc(f)) != EOF) {
if(c == ' ' || c == ':' || c == '@' || c == '\n') {
printf("%c",c);
} else {
printf("Not a valid char");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |