Вот мой код:ifstream не удается открыть файл
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
void getHighScores(int scores[], string names[]);
int main()
{
ifstream stream;
stream.open("scores.txt");
int scores[32];
string names[32];
stream>>scores[0];
stream>>names[0];
if(stream.fail())
cout<<"It failed\n"<<strerror(errno)<<endl;
for(int i=1;i<5;i++)
{
stream>>scores[i];
stream>>names[i];
cout<<i<<endl;
}
cout<<scores[2]<<endl;
stream.close();
return 0;
}
void getHighScores(int scores[], string names[])
{
}
Это получить кучу мусора для оценки [2], потому что stream.open («scores.txt») не удается открыть файл. strerror (errno) дает мне «Нет ошибки».
Я проверил, действительно ли мой файл называется «scores.txt.txt». Это не. Я также попытался переместить мой файл в «C: \ scores.txt». Я пробовал использовать полный адрес. Я попытался удалить его и воссоздать. Я пробовал и другие вещи, которые я не помню. ! [введите описание изображения здесь] [1] Я пытался часами исправлять это, и я в отчаянии. Я был бы признателен, если бы кто-нибудь мог помочь мне исправить это.
void gethighscores - это функция, которую я планирую использовать позже.
Входной файл выглядит следующим образом:
Ronaldo
10400
Didier
9800
Pele
12300
Kaka
8400
Cristiano
8000
Выход программы выглядит следующим образом
It failed
No error
1
2
3
4
-858993460
Press any key to continue . . .
Я бегу это в Microsoft Visual Studio Express 2012 для рабочего стола Windows Мой операционной система - это 64-разрядная версия Windows 7.
Вы уверены, что scores.txt действительно существует в вашем [рабочем каталоге] (http://en.wikipedia.org/wiki/Working_directory)? Это не обязательно путь исполняемого файла. Кроме того, попытка открыть файл непосредственно из C: \ может завершиться неудачей по другим причинам (например, разрешениям). Кроме того, вы должны проверить открытый сбой ('stream.is_open()') сразу после вызова open (не только после попытки чтения). – MooseBoys
Это, вероятно, поможет вам значительно проверить правильность выкидывания потока, а не просто слепо предположить, что они работают. Кроме того, * реальная * выборка вашего входного файла, а также * готовый вывод *, который вы получаете, существенно улучшат этот вопрос вместе с платформой, на которой вы работаете. – WhozCraig
@WhozCraig Тот факт, что он пробовал «C: \ scores.txt», - довольно хороший намек на платформу. –