ptr=fopen(name,"r") выбивает ошибку
Надо открыть файл ,его имя ввести с клавиатуры.Вот что я намудрил,но не работает -ошибка
Код:
cgar *name;
printf("bbbbb");
scanf("%s",name);
FILE *ptr;
ptr=fopen(name,"r");
printf("bbbbb");
scanf("%s",name);
FILE *ptr;
ptr=fopen(name,"r");
Для начала, неплохо бы выделить память под имя файла (new или malloc). Или просто сделать массив char, чтобы не заморачиваться.
это. Об остальных ф-циях там же.
Во-первых, не cgar, a char. Во вторых вот
Код:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
//char *fileName="fname.txt";
char fileName[13]="1.txt";//имя файла
// длину буфера можно выбрать равное длинне файла
//charBuf - сюда будем считывать
char charBuf[1000];
// ввести имя файла с расширением
cout<<"Enter filename :";
cin>>fileName;
/*
cout<<"Enter filename :";
//scanf("%s",fileName);
cin>>fileName;
*/
ifstream inTextFile;
inTextFile.open(fileName);
if(!inTextFile.is_open())
{
cout<<"error"<<endl;
system("PAUSE");
return 0;
//return EXIT_SUCCESS;
}
// читаем файл пока не встретился конец файла
while(!inTextFile.eof())
{
inTextFile.getline(charBuf,1000);
// тут выводим сразу на консоль
cout<<charBuf<<endl;
}
// закрываем файл
inTextFile.close();
cout << "Press the enter key to continue ...";
system("PAUSE");
// cin.get();
return EXIT_SUCCESS;
}
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
//char *fileName="fname.txt";
char fileName[13]="1.txt";//имя файла
// длину буфера можно выбрать равное длинне файла
//charBuf - сюда будем считывать
char charBuf[1000];
// ввести имя файла с расширением
cout<<"Enter filename :";
cin>>fileName;
/*
cout<<"Enter filename :";
//scanf("%s",fileName);
cin>>fileName;
*/
ifstream inTextFile;
inTextFile.open(fileName);
if(!inTextFile.is_open())
{
cout<<"error"<<endl;
system("PAUSE");
return 0;
//return EXIT_SUCCESS;
}
// читаем файл пока не встретился конец файла
while(!inTextFile.eof())
{
inTextFile.getline(charBuf,1000);
// тут выводим сразу на консоль
cout<<charBuf<<endl;
}
// закрываем файл
inTextFile.close();
cout << "Press the enter key to continue ...";
system("PAUSE");
// cin.get();
return EXIT_SUCCESS;
}
Аналогично можно передать функции fopen имя файла.
Код:
FILE * ptrFile = fopen(fileName, "r");
if (ptrFile != NULL)
{
...
if (ptrFile != NULL)
{
...