0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
1

Программа не видит файл

19.05.2015, 06:11. Показов 23050. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброе утро.

Я в программировании недавно так, что особо строго не судите о моих вопросах ...

Проблема в следующем:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
 
{
    ifstream f("ttt2.txt");
    for (int i = 1; i <= 10; ++i)
    {
    int a;
    f >> a;
    cout << a << endl;
    }
    system("pause");
}
пытаюсь заставить его прочитать файл ttt2.txt ... но он упорно его не видит
закинул его в папку с проектом
C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла
туда же сохраняется файл если программу перестроить не на чтение, а на запись файла ... пытаюсь програмку заставить прочитать его - но то же ничего не получается ...

подскажите в чем может быть проблема ... заранее спасибо.

P.S. Если это важно - пишу в Visual Studio 2012
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2015, 06:11
Ответы с готовыми решениями:

Программа не видит файл
Здравствуйте! Такая проблема: нужно было написать программу, которая будет считывать с файла...

Программа не видит файл
using System; using System.Text; using System.Text.RegularExpressions; using System.IO; ...

Программа не видит файл
Программа не видит xlsx файл если не прописать полный путь. Как можно избавится от этого не...

Программа не видит INI файл
Вообщем. Находится в папке с прогой INI файл, пытаюсь его подрубить к проге, не получается. В нем...

24
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.05.2015, 06:25 2
Если открываешь файл для чтения, всегда проверку делай на открытие. Расширения файлов в системе видны?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
     ifstream f("ttt2.txt");
     if (!f)
         cout << "Error!" << endl;
     else
     {
         for (int i = 1; i <= 10; ++i)
         {
             int a;
             f >> a;
             cout << a << endl;
         }
         f.close();
     }
     system("pause");
}
1
52 / 41 / 16
Регистрация: 16.12.2012
Сообщений: 144
19.05.2015, 06:25 3
Путь к проектам , там присутствуют русские буквы и пробелы , может это влияет.
Попробуй файл закинуть в корень диска C:\ вот так
C++
1
ifstream f("C:\\ttt2.txt")
1
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.05.2015, 06:31 4
Цитата Сообщение от Stanis Посмотреть сообщение
Путь к проектам , там присутствуют русские буквы и пробелы , может это влияет.
Студии по барабану это.

Добавлено через 4 минуты
Кстати, в файле что?
0
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
19.05.2015, 07:22  [ТС] 5
Добавлено через 6 минут
Цитата Сообщение от Stanis Посмотреть сообщение
Путь к проектам , там присутствуют русские буквы и пробелы , может это влияет.
Попробуй файл закинуть в корень диска C:\ вот так
C++
1
ifstream f("C:\\ttt2.txt")
То есть необходимо прописать полностью путь? ... в моем случае это:
ifstream f("C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла\ttt2.txt");

Я правильно понял идею (сейчас на работе - проверить теорию не могу)?

Добавлено через 53 секунды
Цитата Сообщение от lss Посмотреть сообщение
Если открываешь файл для чтения, всегда проверку делай на открытие. Расширения файлов в системе видны?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
     ifstream f("ttt2.txt");
     if (!f)
         cout << "Error!" << endl;
     else
     {
         for (int i = 1; i <= 10; ++i)
         {
             int a;
             f >> a;
             cout << a << endl;
         }
         f.close();
     }
     system("pause");
}
Расширения файлов - нет ... в винде не ставил - но смотрел свойства файла ... стоит .txt
Еще пробывал переименовать записанный файл со внесением в него данных - думаю, что все таки проблема в разрешении файла ... но ничего не получилось - проблема осталась ...

Еще ...

if (!f)
cout << "Error!" << endl;
else

Это я так понимаю проверка на правильность файла с которого идет загрузка?
0
52 / 41 / 16
Регистрация: 16.12.2012
Сообщений: 144
19.05.2015, 08:33 6
Лучший ответ Сообщение было отмечено AmRamzes как решение

Решение

Цитата Сообщение от AmRamzes Посмотреть сообщение
if (!f)
cout << "Error!" << endl;
else
Да проверка , установлена связь с файлом или нет .
Цитата Сообщение от AmRamzes Посмотреть сообщение
ifstream f("C:\Users\user\Desktop\Рамис\С++\чтение и запись из файла\чтение и запись из файла\ttt2.txt");
Да , все верно , только вместо одного бэкслэша нужно ставить два . Например : "C:\\Users\\user\\Desktop\\и т.д.\\ttt2.txt"
И вообще попробуй еще раз говорю в корень диска указать путь , как я выше написал. А то пока вобьешь
путь до своего файла , где нить можешь ошибиться . Вообще директория с проектом считается директорией по умолчанию , если ты напишешь просто ifstream f("ttt2.txt"); то там (директория с проектом ) должен быть файл ttt2.txt иначе ошибка, название файла тоже проверь.
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
19.05.2015, 08:46  [ТС] 7
Цитата Сообщение от Stanis Посмотреть сообщение
Да проверка , установлена связь с файлом или нет .

Да , все верно , только вместо одного бэкслэша нужно ставить два . Например : "C:\\Users\\user\\Desktop\\и т.д.\\ttt2.txt"
И вообще попробуй еще раз говорю в корень диска указать путь , как я выше написал. А то пока вобьешь
путь до своего файла , где нить можешь ошибиться . Вообще директория с проектом считается директорией по умолчанию , если ты напишешь просто ifstream f("ttt2.txt"); то там (директория с проектом ) должен быть файл ttt2.txt иначе ошибка, название файла тоже проверь.
Я в эту директорию файл и закинул ... только он почему то его не нашел ...

Вечером попробу сделать все как написано ... спасибо
0
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
19.05.2015, 09:00 8
Если у вас в файле содержатся числа, замените переменные char на необходимые.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <fstream>
 
using namespace std;
 
 
int main()
{
    setlocale (0,"rus");
    char S;
    int count=0, i=0, chek=0;
 
    ifstream file("Test.txt");
        
    if (!file) 
    cout << "Файл не открыт.\n";
    else 
    {
    while (!file.eof()) 
    {
    file.get(S);
    count++;
    }
    file.close(); 
 
    ifstream file1("ttt2.txt");
    char *str=new char[count];
    while (!file1.eof())
    {
    file1.get(str[i]);
    i++; 
    }
    cout << "Содержимое файла: ";
    for (int i=0; i<count-1; i++)
    {
    cout << str[i];
    }
    cout << "\n";
                
    file1.close();
    }   
    return 0;
}
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.05.2015, 09:09 9
Цитата Сообщение от AmRamzes Посмотреть сообщение
Расширения файлов - нет ... в винде не ставил - но смотрел свойства файла ... стоит .txt
Включи видимость расширений файлов в системе. Если файл (текстовый документ) вручную создаёшь, а расширения файлов не видно в системе, то название давай без расширения: ttt2, система сама добавит .txt, иначе получится файл ttt2.txt.txt, ты будешь видеть в папке ttt2.txt, но твой код такой файл не найдёт.

Добавлено через 2 минуты
...
Цитата Сообщение от lss Посмотреть сообщение
Кстати, в файле что?
Добавлено через 2 минуты
Цитата Сообщение от Stanis Посмотреть сообщение
если ты напишешь просто ifstream f("ttt2.txt"); то там (директория с проектом ) должен быть файл ttt2.txt иначе ошибка,
Файл у него на месте лежит, он проверил вот таким способом (1 пост):
Цитата Сообщение от AmRamzes Посмотреть сообщение
туда же сохраняется файл если программу перестроить не на чтение, а на запись файла
3
Модератор
Эксперт С++
13498 / 10752 / 6407
Регистрация: 18.12.2011
Сообщений: 28,692
19.05.2015, 09:40 10
Частенько бывает, что файл на самом деле называется ttt2.txt.txt
А поскольку в проводнике по умолчанию стоит "Скрывать расширения", то .txt не видно даже при просмотре свойств
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
19.05.2015, 10:18  [ТС] 11
Цитата Сообщение от lss Посмотреть сообщение
Студии по барабану это.

Добавлено через 4 минуты
Кстати, в файле что?
в файле цифры

1
2
3
...
10

Добавлено через 3 минуты
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Если у вас в файле содержатся числа, замените переменные char на необходимые.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <fstream>
 
using namespace std;
 
 
int main()
{
    setlocale (0,"rus");
    char S;
    int count=0, i=0, chek=0;
 
    ifstream file("Test.txt");
        
    if (!file) 
    cout << "Файл не открыт.\n";
    else 
    {
    while (!file.eof()) 
    {
    file.get(S);
    count++;
    }
    file.close(); 
 
    ifstream file1("ttt2.txt");
    char *str=new char[count];
    while (!file1.eof())
    {
    file1.get(str[i]);
    i++; 
    }
    cout << "Содержимое файла: ";
    for (int i=0; i<count-1; i++)
    {
    cout << str[i];
    }
    cout << "\n";
                
    file1.close();
    }   
    return 0;
}
У меня char не использовался ... не совсем понял высказывание ...

Добавлено через 2 минуты
Цитата Сообщение от lss Посмотреть сообщение
Включи видимость расширений файлов в системе. Если файл (текстовый документ) вручную создаёшь, а расширения файлов не видно в системе, то название давай без расширения: ttt2, система сама добавит .txt, иначе получится файл ttt2.txt.txt, ты будешь видеть в папке ttt2.txt, но твой код такой файл не найдёт.

Добавлено через 2 минуты
...


Добавлено через 2 минуты

Файл у него на месте лежит, он проверил вот таким способом (1 пост):
ок ... спасибо ... попробую вечером ... на самом деле видимо это и есть проблема ...

Добавлено через 47 секунд
ок ... спасибо
0
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
19.05.2015, 14:36 12
Пардон, менять ничего не надо - итак всё работает. Переместите Ваш файл в папку с проектом. И будет Вам счастье.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <fstream>
 
using namespace std;
 
 
int main()
{
    setlocale (0,"rus");
    char S;
    int count=0, i=0, chek=0;
 
    ifstream file("ttt2.txt");
        
    if (!file) 
    cout << "Файл не открыт.\n";
    else 
    {
        while (!file.eof()) 
        {
            file.get(S);
            count++;
        }
        file.close(); 
     
        ifstream file1("ttt2.txt");
        char *str=new char[count];
        while (!file1.eof())
        {
            file1.get(str[i]);
            i++; 
        }
        cout << "Содержимое файла:" << endl;
        for (int i=0; i<count-1; i++)
        {
            cout << str[i];
        }
        cout << "\n";           
        file1.close();
    }   
    return 0;
}
Миниатюры
Программа не видит файл  
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.05.2015, 14:38 13
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Переместите Ваш файл в папку с проектом.
Посты читаешь?
0
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
19.05.2015, 15:47 14
Цитата Сообщение от lss Посмотреть сообщение
Посты читаешь?
Читаю. Просто продублировал совет на всякий случай.
0
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
19.05.2015, 20:31  [ТС] 15
перемещал я в папку ... не видит он его ... но решение видимо уже написано в данной теме ... вечером попробую и отпишусь ...

P.S. спасибо всем кто пытается мне помочь ... неожиданно - приятно, что такая активность на сайте в части помощи новичкам (фактически второй день на форуме) ... с такой помощью я точно напишу шедевр )))

Добавлено через 4 часа 24 минуты
Всем спасибо ... проблема решена ...

Нужно то было - разрешить отображать разрешение файлов ... соответственно файл из ttt2 превратился в ttt2.txt ... сам файл находился в папке проекта ... так, что все работает ... УРА !!!
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.05.2015, 20:45 16
Цитата Сообщение от AmRamzes Посмотреть сообщение
Нужно то было - разрешить отображать разрешение файлов ... соответственно файл из ttt2 превратился в ttt2.txt ...
Нет, если бы, при отключенной видимости расширений файлов, в папке был файл ttt2, то код бы работал, а в папке, предполагаю, был файл ttt2.txt (при включении видимости расширений файлов: ttt2.txt.txt), поэтому код его и не находил. Для кода, так же как и для ОС, расширения видны всегда.
0
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
19.05.2015, 21:34  [ТС] 17
Цитата Сообщение от lss Посмотреть сообщение
Нет, если бы, при отключенной видимости расширений файлов, в папке был файл ttt2, то код бы работал, а в папке, предполагаю, был файл ttt2.txt (при включении видимости расширений файлов: ttt2.txt.txt), поэтому код его и не находил. Для кода, так же как и для ОС, расширения видны всегда.
Нет ... пока расширение файлов было отключено и файл фактически выглядел "ttt2", а в коде я его указывал как "ttt2.txt" ничего не работало ... как только я включил расширение файлов и фактически считываемый файл стал выглядеть "ttt2.txt" все стало работать

проверенно на практике
0
45 / 42 / 48
Регистрация: 13.05.2015
Сообщений: 222
19.05.2015, 21:41 18
Цитата Сообщение от AmRamzes Посмотреть сообщение
Нет ... пока расширение файлов было отключено и файл фактически выглядел "ttt2", а в коде я его указывал как "ttt2.txt" ничего не работало ... как только я включил расширение файлов и фактически считываемый файл стал выглядеть "ttt2.txt" все стало работать
Очень странно. Это всего-лишь визуальная опция, которая на функционал не влияет. Теоретически.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
20.05.2015, 01:00 19
Цитата Сообщение от AmRamzes Посмотреть сообщение
проверенно на практике
Сказки не рассказывай.
Цитата Сообщение от Mamoruhiko Посмотреть сообщение
Теоретически.
И практически.
AmRamzes, для проверки, отключи видимость расширений файлов, создай какой-нибудь тектовый документ в папке проекта (тольно не ttt2, чтобы путаницы не было), напимер: test (пишешь одно имя, без расширения). Потом запусти такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    ifstream fin("test.txt");
    if (!fin)
        cout << "No!" << endl;
    else
        cout << "Yes!" << endl;
    
    system("pause"); 
}
Продемонстрируй результат (первый скрин). Потом включи видимость расиширений файлов, и опять запусти код. Продемонстрируй результат (второй скрин).
Миниатюры
Программа не видит файл   Программа не видит файл  
1
0 / 0 / 0
Регистрация: 18.05.2015
Сообщений: 81
20.05.2015, 07:38  [ТС] 20
Ну не знаю ребята ... может я чего не понимаю ... но изначально все было отключено и фактически текстовый файл в папке выглядел так "ttt2" - а в реальности он был ttt2.txt (проверял банальным нажатием на свойства файла) ... в коде прописывал ifstream f("ttt2.txt"); ... как только включил разрешение все заработало ... вечером еще раз проведу эксперимент ... отпишусь в теме ... может быть я не прав ... с учетом Ваших высказываний сам сомневаться начинаю ...
0
20.05.2015, 07:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2015, 07:38
Помогаю со студенческими работами здесь

Программа не видит файл в скрытой папке
Почему программа на Lazarus не видит файл в скрытой папке?(выдает ошибку 3 т.е путь не найден)(сам...

Программа не видит .mdf файл на других компах
Делал курсовую. Сделал подключение этого самого файлика kursach.mdf SqlConnection sqlConnection;...

Копирование текстового файла - программа не видит файл-источник
есть код, но почему-то не хочет открывать файл какова может быть причина? .486 model small...

Программа не видит properties-файл при её запуске двойным кликом
Здравствуйте. Написал гуишное приложение (на свинге). Приложение работает с базой данных. Настройки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru