как мне получить ввод с клавиатуры, записанный в текстовый файл - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь прочитать ввод с клавиатуры и записать их в новый файл (несуществующий файл) построчно, пока не будет написана конкретная буква (-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 голосов
/ 24 марта 2019

Символы и строки - это не одно и то же.

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);
    }
}
...