2016-03-05 4 views
0

Так что мой водитель выглядит следующим образом:C++ текстовый файл не может быть загружен

#include "problem2.h" 
#include "problem1.h" 
#include "problem3.h" 
#include <iostream> 
#include <fstream> 
#include <string> 
#include <vector> 
#include <sstream> 
#include <algorithm> 
#include <iomanip> 
#include <cstdlib> 
using namespace std; 

template <typename T> 
T convertString (std::string str){ 
    T ret; 
    std::stringstream ss(str); 
    ss >>ret; 
    return ret; 
} 

int main() 
{ 
    ifstream infile("text.txt", ios::in); 
    if(!infile) 
    { 
     cerr <<"File could not be opend"<<endl; 
    } 

    SortedLinked mylist; 
    int a; 
    int b; 
    string c; 
    string d; 
    string e; 
    int f; 
    char g; 
    string h; 

    string mystr; 
    int mymin; 
    int mysec; 

    while(infile>>a>>b>>c>>d>>e>>f>>g>>h) 
    { 
     mystr = a+b; 
     mymin = convertString<int>(e.substr(0,2)); 
     mysec = convertString<int>(e.substr(3, 4)); 
     replace(h.begin(), h.end(), '_', ' '); 

     Runner M(mystr, f, mymin, mysec); 
     mylist.additem(M); 

    } 

    return 0; 
} 

Я поставил text.file в той же папке, она работала в другом компьютере, что я просто попытался несколько дней назад. Прямо сейчас, каждый раз, когда я пытался запустить его, он просто дает мне «Файл не может быть открытым». Я не знаю, что пошло не так. Я даже помещаю один text.txt в тот же каталог, что и C++. Sln, и еще один в том же каталоге, что и файлы .cpp и .h, чтобы убедиться, что есть один файл text.txt, который можно открыть.

Во-первых, я пробовал через Xcode, я поместил свой text.txt как в каталог проекта, так и в каталог .cpp и .h. Файл не может быть открыт.

Затем, я устал от визуальной студии, я поместил .txt в тот же каталог, что и мой .exe. «CMD.EXE было начато с выше пути в качестве текущего UNC пути не поддерживаются Дефолт в каталог Windows, Файл не может быть открыт...»

+0

Вы пытались предоставить конструктору 'std :: ifstream' (' ("text.txt", ios :: in) ') путь _absolute_ вместо относительного пути? Это 'C: \ Users \ ..'. –

+0

Файл должен быть размещен в том же каталоге, где размещен ваш .exe. Если вы запустите программу в режиме отладки в Visual Studio, убедитесь, что она находится в папке Debug. В качестве дополнительной проверки убедитесь, что у вас есть права доступа для чтения файла под пользователем, которым вы работаете .exe – CodeFuller

+0

Да, я поместил его в тот же каталог, что и мой .exe. – JY078

ответ

3

Ответ на это сообщение об ошибке:

«CMD.EXE было начато с выше пути в качестве текущего каталога. UNC пути не поддерживаются. Дефолт в папку Windows. Файл может не быть открытым»

Вы запуска .exe из сетевого ресурса и cmd.exe изменяет ваш рабочий каталог на% WINDOWS% dir. Затем программа пытается открыть файл по относительному имени файла и, конечно же, терпит неудачу. Скопируйте exe и текстовый файл в локальную папку, и он будет работать нормально.

+0

спасибо! На днях я не понимал, что он работает, потому что я тестировал свой локальный диск, сегодня я использую свою сетевую папку. – JY078

Смежные вопросы