Не работает fopen, скажите что не так плз - C (СИ)
Формулировка задачи:
Имеется программа по заданию:
Дан текст. Написать программу печати всех строк, которые короче 10 символов.
Программа на C.
Программу я написал:
Но в aa вечно кладется NULL. Хотя файл Text.txt на диске есть, и не пустой.
Какова причина?
Не работает ни на Turbo C++, ни в VS2008...
#include <stdio.h> #include <conio.h> void main() { //Объявление переменных, посредников FILE *aa,*bb; int simvoli=0; int nomerstrok=1; int number[300]; int zap=0; char c; char adress[50]; bool flag=false; printf("Print a path to your file:\n"); scanf("%s",adress); /*Открываем канал связи с файлом по адресу adress(введен с клавиатуры) для r - чтения*/ aa=fopen("C:\Text.txt","r"); //Помещаем в C след. символ и проверяем его на неравенство EOF while ((c=fgetc(aa))!=EOF) { simvoli++; if (c=='\n') //Если текущий символ - переход на новую строку... { if (simvoli<10) {zap++; number[zap]=nomerstrok;} nomerstrok++; //...увеличим номер текущей строки на 1 simvoli=0; } } fclose(aa); bb=fopen("C:\Text.txt","r"); simvoli=0; nomerstrok=1; zap=1; //Теперь печатаем каждую строку, номер которой лежив в number[] while ((c=fgetc(bb))!=EOF) { if (nomerstrok==number[zap]) {flag=true; zap++; printf("\n");} if (flag==true) printf("%c",c); if (c=='\n') {flag=false; nomerstrok++;} } getch(); }
Решение задачи: «Не работает fopen, скажите что не так плз»
textual
Листинг программы
/* Открываем канал связи с файлом по адресу address (введен с клавиатуры) для r - чтения*/ aa = fopen(address, "r");
Объяснение кода листинга программы
- Объявляется переменная типа int с именем aa.
- Значение переменной address берется с клавиатуры.
- В качестве первого аргумента функции fopen передается адрес файла (строка), в качестве второго аргумента -
r
(чтение). - Результат выполнения функции fopen сохраняется в переменной aa.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д