Я читаю данные из предварительно прочитанного файла и сохраняю его в буфере, в котором я прошел через структуру, чтобы организовать данные, а затем повторно сохранить их в другом файле.Чтение нескольких строк данных из файла
Однако я читаю только одну строку кода.
Мой код - Открытие файла:
File *p_file
char fileLocation[40];
char buff[1000];
printf("\nEnter file name: \n");
scanf("%s, fileLocation);
p_file = fopen(fileLocation, "r");
if(!p_file)
{
printf("\nError!\n");
}
Loop для чтения данных и сохранить файл
while(fgets(buff, 1000, p_file)!=NULL
{
printf("%s", buff);
storedData.source = atoi(strtok(buff, ":");
storedData.destination = atoi(strtok(0, ":");
storedData.type = atoi(strtok(0, ":");
storedData.port = atoi(strtok(0, ":");
storedData.data = strtok(0, ":\n");
printf("\nEnter a File Name to save:");
scanf("%s", fileLocation);
if ((p_file = fopen(fileLocation, "w")) == NULL
{
puts("\n Could not point to the file.");
}else{
printf("\nSaving");
fprintf(p_file, "%04d:%04d:%04d:%04:%s \n",
storedData.source,
storedData.destination,
storedData.type,
storedData.port,
storedData.data);
fclose(p_file);
}
fclose(p_file);
токовый выход данных:
0001:0002:0003:0021:CLS
Wanted вывод данных:
0001:0002:0003:0021:CLS
0001:0010:0003:0021:CLS
0001:0002:0002:0080:<HTML>
Я считаю, что я должен объявить целочисленное значение для использования в цикле содержимого файла, а также использовать malloc для получения размера структуры, но я не знаю, как бы я это сделал. Любая помощь будет высоко ценится.
эта строка: в то время как (fgets (бафф, 1000, p_file) = NULL отсутствует завершающую! ')' – user3629249
эта строка: если ((p_file = FOPEN (fileLocation, "ш")) == NULL отсутствует также «trailing»), также используйте другое имя для указателя файла, другое мудрый 1) не сможет больше ссылаться на первый файл, 2) не сможет закрыть первый файл. 3) нужно только открыть выходной файл один раз, поэтому поместить вне loo; – user3629249