[英]Clarification on reading and writing files in C
我花了几个小时试图弄清楚如何从输入文件中读取字符串,对其进行处理以及在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:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:16:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:29:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:36:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:49:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:56:错误:如果(string [i] =='a'|| string [i] =='e'|| string [i] =='i' || str ... ^
esercizio.c:6:69:错误:使用了未声明的标识符'string'... =='a'|| 字符串[i] =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 圣... ^
esercizio.c:6:76:错误:使用未声明的标识符'i'...'a'|| 字符串[i] =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| Strin ... ^
esercizio.c:6:89:错误:使用未声明的标识符'string'... =='e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^
esercizio.c:6:96:错误:使用未声明的标识符'i'...'e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^
esercizio.c:6:109:错误:预期表达式...'e'|| 字符串[i] =='i'|| 字符串[i] =='o'|| 字符串[i] =='u'|| ){^
esercizio.c:7:15:错误:使用未声明的标识符'string'fputs(string [i],output1); ^
esercizio.c:7:22:错误:使用未声明的标识符'i'fputs(string [i],output1); ^
esercizio.c:8:9:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^
esercizio.c:8:13:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^
esercizio.c:8:24:错误:使用未声明的标识符'string'i = i + sizeof(string [i]); ^
esercizio.c:8:31:错误:使用未声明的标识符'i'i = i + sizeof(string [i]); ^
esercizio.c:10:14:错误:预期表达式,如果(int string [i]){^
esercizio.c:11:15:错误:使用未声明的标识符'string'fputs(string [i],output2); ^
致命错误:发出了太多错误,现在停止[-ferror-limit =]产生20个错误。
有人有指针吗?
这是您的整个程序吗? 什么是#include行? 我看到的一个问题是char *string
不分配内存。 还有,下一行
while(fgets(stringa, EOF, inFile)) {
引用不存在的变量stringa。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.