Я пытаюсь прочитать содержимое файла на C++, но когда я запускаю программу, она продолжает терпеть неудачу. Не уверен, что это потому, что я использую Ubuntu Linux.
Код ниже: кажется достаточно простым, но по какой-то причине файл никогда не открывается и продолжает давать сбой.
// This program reads data from a file.
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
// Create a text string, which is used to output the text file
string myText;
// Read from the text file
ifstream MyReadFile;
MyReadFile.open("nums");
if (!MyReadFile){
cout << "Failed" << endl;
}
else
// Use a while loop together with the getline() function to read the file line by line
while (getline (MyReadFile, myText)) {
// Output the text from the file
cout << myText;
}
// Close the file
MyReadFile.close();
}
Ваш файл действительно имеет точное имя nums
без расширения? Это в текущем рабочем каталоге? В VSCode этот каталог, вероятно, совпадает с каталогом исполняемого файла и вашего кода.
Изображение вашего кода бесполезно. Изображение папки может помочь решить проблему.
показывать полупрозрачный код поверх других вещей не очень полезно при чтении. А если использовать темно-фиолетовый цвет на темно-сером, то его будет трудно читать.
Ваш файл не будет открыт, поскольку вам не указан полный путь к нему и расширение. Например, если ваш файл находится в вашем «домашнем» каталоге, вам следует написать
MyReadFile.open("/home/nums.txt");
Вот еще один ответ от переполнения стека: Как открыть файл на C++?
Обратите внимание, что домашним каталогом пользователя будет /home/<имя пользователя>. Ваш обычный пользователь не будет иметь разрешения на запись в /home.
нет необходимости указывать абсолютный путь, достаточно относительного пути, гораздо лучше использовать путь к файлу в качестве аргумента программы
Ваша строка должна включать полный каталог плюс тип расширения файла. Например, в Linux это может быть «/home/user/files/nums.txt».