我正在尝试读取键盘输入并将它们逐行写入新文件(不存在的文件),直到写入特定字母(在这种情况下为-x-),但它似乎不起作用,我一直保持出现错误,我在做什么错了?
void newfunc(){
FILE *fp;
fp = fopen("newfile.txt", "w+");
char char1[100], char2[100];
int int1, int2;
int x = 0;
printf("Inputs\n");
while(1) {
scanf("%c %d %c %d", &char1[x], &int1, &char2[x], &int2);
if ( char1[x] == "x") {
printf("Done!");
break;
}
else {
fprintf(fp, "%c %d %c %d\n", char1[x], int1, char2[x], int2);
}
x++;
}
fclose(fp);
}
它将创建文件,但不向其中写入任何内容。
答案 0 :(得分:0)
字符和字符串不是同一回事。
if ( char1[x] == "x") {
应该是
if ( char1[x] == 'x') {
很难理解为什么要使用数组。为什么不拥有char
变量,因为这就是您要读取的内容。
char char1, char2;
int int1, int2;
printf("Inputs\n");
while(1) {
scanf("%c %d %c %d", &char1, &int1, &char2, &int2);
if ( char1 == 'x') {
printf("Done!");
break;
}
else {
fprintf(fp, "%c %d %c %d\n", char1, int1, char2, int2);
}
}