Запись строк из структур данных в файл - PullRequest
0 голосов
/ 25 августа 2018

Эта программа должна получить пользовательскую строку ввода слов, сохранить их в структуре данных и затем распечатать все в файл.Например, если я наберу «test one», он должен быть сохранен на input.one, а затем я должен увидеть «test one» на clients.txt.Если я наберу «проверить один», «проверить два» и «проверить три», я должен увидеть эти три ввода, напечатанные на клиентском.txt.

Проблема в том, что программа сейчас будет выполнять только один scanf вместотри, вот почему я добавил три scanf вместо того, чтобы делать только один scanf.По сути, если я введу «проверить один», он сохранит и напечатает только один тест, не запрашивая другие два ввода, я понятия не имею, почему.

Дополнительно: я добавил эти fgets как еще один способ попытатьсясохраните входные данные правильно, проблема в том, что fgets напечатает данные в файле как

"проверить один тест два проверить три"

вместо всего в одной строке, поэтому fgets не будетне работает ни.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct inputs {
   char one[30];
   char two[30]; 
   char three[30]; 
};

int main(void)
{  

   struct inputs inputs = {"", "", ""};

   FILE *cfPtr; // cfPtr = clients.txt file pointer   
   // fopen opens file. Exit program if unable to create file 
   if ((cfPtr = fopen("clients.txt", "w")) == NULL) {
      puts("File could not be opened");
   } 
   else { 
      puts("Enter one, two, three.");
      puts("Enter EOF to end input.");
      printf("%s", "? ");


      //scanf("%[^\n]s%[^\n]s%[^\n]s", inputs.via, inputs.nome, inputs.stars);


      /*
      fgets(inputs.one, 30, stdin);
      fgets(inputs.two, 30, stdin);
      fgets(inputs.three, 30, stdin);
      */



      while (!feof(stdin)) { 
         scanf("%[^\n]s", inputs.one);
         scanf("%[^\n]s", inputs.two);
         scanf("%[^\n]s", inputs.three);
         fprintf(cfPtr, "%s%s%s", inputs.one, inputs.two, inputs.three);
      }





      fclose(cfPtr); // fclose closes file   
   } 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...