#c
#c
Вопрос:
Этот код представляет собой комбинацию двух текстовых файлов
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *movieyear;
char year[90];
movieyear = fopen("Lecture 07 - Movie Data - Year.txt", "r");
FILE *moviedata;
char data[90];
moviedata = fopen("Lecture 07 - Movie Data - Releases.txt", "r");
FILE *NEWdata;
char DData;
NEWdata = fopen("Movieinfo.txt", "w");
if (movieyear == NULL || moviedata == NULL) {
printf("Error opening filen");
return (-1);
}
if (NEWdata == NULL) {
printf("Error opening filen");
return (-1);
}
while ((DData = fgetc(movieyear)) != EOF) {
fputc(DData, NEWdata);
}
while ((DData = fgetc(moviedata)) != EOF) {
fputc(DData, NEWdata);
}
fclose(movieyear);
fclose(moviedata);
fclose(NEWdata);
return 0;
}
Этот текстовый файл записывает:
2015
2019
2009
2018
2018
1997
2015
2012
2017
2018
Star Wars: Episode VII - The Force Awakens
Avengers: Endgame
Avatar
Black Panther
Avengers: Infinity War
Titanic
Jurassic World
Marvel's The Avengers
Star Wars: Episode VIII - The Last Jedi
Incredibles 2
Мой желаемый результат:
Star Wars: Episode VII - The Force Awakens
2015
Avengers: Endgame
2019
Avatar
2009
Black Panther
2018
Avengers: Infinity War
2018
Titanic
1997
Jurassic World
2015
Marvel's The Avengers
2012
Star Wars: Episode VIII - The Last Jedi
2017
Incredibles 2
2018
Комментарии:
1. Исправьте отступ в коде.
2. Есть ли ошибка или это больше помогает вам кодировать?
3. @Will: Это логическая ошибка.
4. Шаг 1:
char DData;
—>int DData;
5. @chux потратил время и усилия на то, чтобы переформатировать ваш код для вас. Заметили, насколько легче это читать? Это должно быть первое , что вы делаете, а не последнее.
Ответ №1:
Это
while((DData = fgetc(movieyear)) != EOF){
fputc(DData,NEWdata);
}
while((DData = fgetc(moviedata)) != EOF){
fputc(DData,NEWdata);
}
Будет довольно четко выведены сначала все годы, а затем все названия.
Что вам нужно, так это один цикл, который будет выводить как год, так и название одновременно.
Комментарии:
1. Я пытался это совместить, но у меня все еще возникают проблемы. Я не знаю, где это можно совместить
2. Что ж, вы могли бы попробовать заполнить эти годовые и информационные массивы и использовать их. На данный момент они просто лежат там неиспользованными.
3. Должен ли он заменить DData соответствующими массивами?