Форум программистов, компьютерный форум CyberForum.ru

чтение из файла - C++

Восстановить пароль Регистрация
 
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
15.06.2013, 21:08     чтение из файла #1
запускаю в отладчике студии сей код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
int main(int argc, char *argv[])
{       
    ifstream in_file("111.asm");
    char str[255];
    in_file.getline(str, sizeof(str));
    cout<<str<<endl;    
    cin.get();
    in_file.close();
    return 0;
}
на выходе пустая строка... запускаю готовую прогу в папке - строка читается нормально... в чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2013, 21:08     чтение из файла
Посмотрите здесь:

чтение файла C++
Чтение файла C++
Чтение из файла C++
C++ Чтение из файла
C++ Чтение из файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.06.2013, 21:11     чтение из файла #2
Проверь методом is_open открыт ли файл.
Как вариант, рабочий каталог в IDE отличется от того, где расположен исполняемый файл и *.asm (я так понимаю, они лежат в одной папке).
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
15.06.2013, 21:20  [ТС]     чтение из файла #3
Цитата Сообщение от 0x10 Посмотреть сообщение
Как вариант, рабочий каталог в IDE отличется от того, где расположен исполняемый файл и *.asm (я так понимаю, они лежат в одной папке).
сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
using namespace std;
 
int main(int argc, char *argv[])
{       
    ifstream in_file("C:\111.asm");
    char str[255];
    in_file.getline(str, sizeof(str));
    cout<<str<<endl;    
    cin.get();
    in_file.close();
    return 0;
}
никаких изменений... только теперь прога из папки debug перестала читать файл.
сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
using namespace std;
 
int main(int argc, char *argv[])
{       
    ifstream in_file;
    in_file.open("C:\111.asm");
    char str[255];
    if (in_file.is_open())
    {in_file.getline(str, sizeof(str));
    cout<<str<<endl;    
    cin.get();
    in_file.close();}
    return 0;
}
тоже ничего...
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.06.2013, 21:20     чтение из файла #4
"C:\\111.asm"
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
15.06.2013, 21:23  [ТС]     чтение из файла #5
баг выявил. стал указывать полный путь до файла и две косые черты: C:\\111.asm
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
15.06.2013, 21:33     чтение из файла #6
С прямым слэшем вроде тоже должно работать: "C:/111.asm" .
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
15.06.2013, 23:09  [ТС]     чтение из файла #7
опять баг... пытаюсь записать данные в файл... а он не открывается. что посоветуете?
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
46
47
#include <iostream>
#include <cstring>
#include <fstream>
 
using namespace std;
 
void parser(char *str);
 
const int MAX_SIZE=255;
 
int main(int argc, char *argv[])
{       
    ifstream in_file("C:\\111.asm");    
    ofstream out_file("C\\out.asm");
    if (out_file.is_open())
        out_file<<"a;sdlkfjaf;j";         //не пишет... 
    
    char str[MAX_SIZE];
    while (!in_file.eof())
    {
        in_file.getline(str, sizeof(str));
        parser(str);
        out_file<<str<<endl;
    }
    cin.get();
    return 0;
}
 
void parser(char *str)
{
    char *pos, out_str[MAX_SIZE];
    short int old_pos=0, i, j;
    if ((pos=strchr(str, '=')) != NULL)
    {
        strcpy(out_str, "mov ");
        for (i=old_pos, j=4; i<=pos-str-1; ++i, ++j)
            out_str[j]=str[i];
        
        out_str[j++]=',';
        out_str[j++]=' ';
        for (i=pos-str+1; i<strlen(str); ++i, ++j)
            out_str[j]=str[i];
        out_str[j]='\0';
        strcpy(str, out_str);
    }
 
}
Добавлено через 39 секунд
хотя входной файл открылся нормально...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2013, 07:21     чтение из файла
Еще ссылки по теме:

Чтение из файла C++
чтение из файла C++
Чтение из файла C++

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

Или воспользуйтесь поиском по форуму:
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
16.06.2013, 07:21     чтение из файла #8
После буквы диска пропущено двоеточие.
Yandex
Объявления
16.06.2013, 07:21     чтение из файла
Ответ Создать тему
Опции темы

Текущее время: 17:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru