Считать информацию из текстового файла и вывести ее на экран - C (СИ)
Формулировка задачи:
Есть такой текстовый файл: а.txt
2.617917 -0.865987
2.814260 -0.946903
3.010604 -0.991433
3.206948 -0.997865
3.403291 -0.965952
3.599635 -0.896920
3.795979 -0.793422
3.992322 -0.659435
4.188666 -0.500108
4.385010 -0.321563
4.581354 -0.130661
4.777698 0.065262
4.974041 0.258677
5.170385 0.442152
5.366729 0.608636
5.563073 0.751732
надо: Считать информацию из a.txt и вывести ее на экран
Код на корявеньком Си, такой примерно и надо, прога выводит, но немного не то, ПОМОГИТЕ КТО МОЖЕТ!!!
#include <stdio.h>/*подключение библиотеки ввода вывода данных*/
int main()
{
FILE * file = fopen("a.txt","r");/*открытие файла для чтения*/
int n=16;/*количество строк*/
char *x = new char;/*указатель для считывания значений аргумента*/
char *f = new char;/*указатель для считывания значений функции*/
for(int i=0;i<n;i++)
{
fscanf(file,"%s\t %s",x,f);
printf("%s\t%s\n",x,f);/*вывод на экран*/
}
fclose(file);/*закрытие файла */
return 0;
}Решение задачи: «Считать информацию из текстового файла и вывести ее на экран»
textual
Листинг программы
#include <stdio.h>
#define INPUT_FILE "a.txt"
int main(void){
FILE * f;
double a, b;
if ( ( f = fopen(INPUT_FILE, "r") ) == NULL ){
fprintf(stderr, "Can't open input file!\n");
return 1;
}
while ( fscanf(f, "%lf %lf", &a, &b) == 2 )
printf("%f %f\n", a, b);
return ( ferror(f) || fclose(f) );
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и математическими функциями.
- Определение имени входного файла.
- Объявление переменных типа double для хранения считанных значений.
- Проверка на открытие файла, если открытие не удалось, выводится сообщение об ошибке и возвращается 1.
- В случае успешного открытия файла, начинается цикл, который выполняется до тех пор, пока успешно считываются два значения.
- Внутри цикла считанные значения выводятся на экран.
- После окончания цикла, проверяется, были ли ошибки при работе с файлом, если были, то возвращается 1.
- Закрытие файла.