我如何将键盘输入写入txt文件

时间:2019-03-23 22:34:18

标签: c printf scanf

我正在尝试读取键盘输入并将它们逐行写入新文件(不存在的文件),直到写入特定字母(在这种情况下为-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);

}

它将创建文件,但不向其中写入任何内容。

1 个答案:

答案 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);
    }
}