【发布时间】:2013-10-29 17:44:47
【问题描述】:
我花了好几个小时试图弄清楚如何从输入文件中读取字符串、处理它并在 3 个不同的输出文件中写入元音、辅音和数字。这是我达到的代码:
void discriminator(input, output1, output2, output3) {
if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || string[i] == 'o' || string[i] == 'u' || ) {
fputs(string[i], output1);
i = i + sizeof(string[i]);
}
else if (int string[i]) {
fputs(string[i], output2);
i = i + sizeof(string[i]);
}
else {
fputs(string[i], output3);
i = i + sizeof(string[i]);
}
}
int main() {
FILE *inFile = fopen("input.txt","r");
FILE *outVocali = fopen("outputVocali.txt", "w");
FILE *outNumeri = fopen("outputNumeri.txt", "w");
FILE *outConsonanti = fopen("outputConsonanti.txt", "w");
char *string;
char *fgets(string, EOF, inFile);
int i = 0;
while(fgets(string, EOF, inFile)) {
discriminator(inFile, outVocali, outNumeri, outConsonanti);
}
fclose(inFile);
fclose(outVocali);
fclose(outNumeri);
fclose(outConsonanti);
return 0;
}
这是编译器写的:
esercizio.c:6:9:错误:使用未声明的标识符“字符串” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:16:错误:使用未声明的标识符“i” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:29:错误:使用未声明的标识符“字符串” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:36:错误:使用未声明的标识符“i” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:49:错误:使用未声明的标识符“字符串” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:56:错误:使用未声明的标识符“i” if (string[i] == 'a' || string[i] == 'e' || string[i] == 'i' || stri... ^
esercizio.c:6:69:错误:使用未声明的标识符“字符串” ...== 'a' ||字符串[i] == 'e' ||字符串[i] == 'i' ||字符串[i] == 'o' ||英石... ^
esercizio.c:6:76:错误:使用未声明的标识符“i” ...'一个' ||字符串[i] == 'e' ||字符串[i] == 'i' ||字符串[i] == 'o' ||串... ^
esercizio.c:6:89:错误:使用未声明的标识符“字符串” ...== 'e' ||字符串[i] == 'i' ||字符串[i] == 'o' ||字符串[i] == '你' || ) { ^
esercizio.c:6:96:错误:使用未声明的标识符“i” ...'e' ||字符串[i] == 'i' ||字符串[i] == 'o' ||字符串[i] == '你' || ) { ^
esercizio.c:6:109:错误:预期表达式 ...'e' ||字符串[i] == 'i' ||字符串[i] == 'o' ||字符串[i] == '你' || ) { ^
esercizio.c:7:15:错误:使用未声明的标识符“字符串” fputs(字符串 [i],输出 1); ^
esercizio.c:7:22:错误:使用未声明的标识符“i” fputs(字符串 [i],输出 1); ^
esercizio.c:8:9:错误:使用未声明的标识符“i” i = i + sizeof(string[i]); ^
esercizio.c:8:13:错误:使用未声明的标识符“i” i = i + sizeof(string[i]); ^
esercizio.c:8:24:错误:使用未声明的标识符“字符串” i = i + sizeof(string[i]); ^
esercizio.c:8:31:错误:使用未声明的标识符“i” i = i + sizeof(string[i]); ^
esercizio.c:10:14:错误:预期表达式 否则 if (int string[i]) { ^
esercizio.c:11:15:错误:使用未声明的标识符“字符串” fputs(字符串 [i],输出 2); ^
致命错误:发出的错误太多,现在停止 [-ferror-limit=] 生成了 20 个错误。
有人指点一下吗?
【问题讨论】:
-
您的具体问题是什么?
-
当我编译代码时,会跳出关于变量的错误。我不知道我是否犯了错误,首先是关于指针,因为在 main 中调用过程“鉴别器”,编译器告诉我 string 和 i 不是声明变量
-
@RiccardoTosti 请阅读任何简单的 C 教程,然后您可以解决这些错误中的最大部分