Не работает 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.