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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
#1

Как считать из файла в string? - C++

04.11.2013, 18:45. Просмотров 2136. Ответов 18
Метки нет (Все метки)

Чертовски глупый вопрос, но всё же.
По моим представлениям, это должно выглядеть так:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
using namespace std;
FILE *f1, *f2;
int main()
{
    f1=fopen("INPUT.TXT", "rt");
    f2=fopen("OUTPUT.TXT", "wt");
    string str;
    fscanf(f1,"%s", &str);
}
а вот по представлениям компилятора, тут что то не так.
Разъясните пожалуйста.
и был бы премного благодарен, если бы предоставили ссылочку на сайт, где можно подробнее почитать про работу с stringом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как считать из файла в string? (C++):

Считать из файла слова и занести их в массив string-ов - C++
Как считать слова из файла и занести их в массив типа string?

Считать текст из файла в строку типа std::string (файловый ввод/вывод) - C++
Доброго всем здравия, непонимание работы с файлами побуждает меня беспокоить вас. Программа копирует с файла текст, и из-за абзацев текст...

Как считать строку типа string? - C++
Доброго времени суток, у меня возникла такая проблема: когда строку задаю константой - программа работает хорошо, когда хочу считать с...

Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list - C++
Извините подскажите пожалуйста, как записать list(очередь) объектов в которых содержаться string, и считать с файла обратно в list;...

Как записать объект с полем типа std::string в бинарном виде в файл и считать его обратно? - C++
Знаю как записывать объекты в файл в бинарном виде, но как быть, когда у них динамические поля? Какой метод использовать? Можете привести...

Как считать с файла - C++
Вечер добрый! Не могли бы подсказать , как считать с файла в list(список) объект.

18
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 18:48 #2
jastic7, http://kvodo.ru/urok-10-1-rabota-s-tekstovyimi-faylami-v-c.html вот тут почитайте, расписано с примерами)
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
04.11.2013, 18:50 #3
Цитата Сообщение от jastic7 Посмотреть сообщение
fscanf(f1,"%s", &str);
str - это объект класса string
fscanf - Си'шная функция, которая об объектах вообще ничего не знает
&str - это адрес самого объекта.

Используйте cin,cout,cerr вместо Си'шных функций
0
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:01  [ТС] #4
Croessmah, как их юзать то? поподробнее бы..
0
ТОрчОК
Заблокирован
04.11.2013, 19:09 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
#include <fstream>
#include <string>
int main () 
{ 
    std::string str;
    std::ifstream in("666.txt");
    while(getline(in, str))
    std::cout << str;
    system("pause");
    return 0; 
}
1
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:29  [ТС] #6
Цитата Сообщение от ТОрчОК Посмотреть сообщение
std::
а что это?
0
ТОрчОК
Заблокирован
04.11.2013, 19:32 #7
Цитата Сообщение от jastic7 Посмотреть сообщение
а что это?
пространство имен

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <fstream>
#include <string>
using namespace std;
int main () 
{ 
    string str;
    ifstream in("666.txt");
    while(getline(in, str))
    cout << str;
    system("pause");
    return 0; 
}
0
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:40  [ТС] #8
ТОрчОК, хорошо идем дальше, что значит
Цитата Сообщение от ТОрчОК Посмотреть сообщение
in("666.txt")
in перед скобкой ?
по моим догадкам раз мы считываем, то отсюда и in
если бы записывали, было бы out, верно?
0
ТОрчОК
Заблокирован
04.11.2013, 19:53 #9
файл из которого читаешь

Добавлено через 53 секунды
вместо 666.txt введи место хранения файла в компе
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
04.11.2013, 19:54 #10
Цитата Сообщение от jastic7 Посмотреть сообщение
а что это?
using namespace std
0
ТОрчОК
Заблокирован
04.11.2013, 20:02 #11
правильней будет так все же.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <fstream>
#include <string>
int main () 
{ 
    std::string str, str1 = "";
    std::ifstream in("C:/Новая папка (3)/666.txt");
    while(getline(in, str))
        str1 += str;
    std::cout << str1;
    system("pause");
    return 0; 
}
0
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 20:03  [ТС] #12
хорошо, ну а вот теперь к примеру мне нужна длина строки этой.
я пишу вот чего
C++
1
int a=str.Length()
а он мне ошибку выдает.
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
04.11.2013, 20:05 #13
C++
1
str.size()
C++
1
str.length()
0
ТОрчОК
Заблокирован
04.11.2013, 20:05 #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <fstream>
#include <string>
int main () 
{ 
    std::string str, str1 = "";
    std::ifstream in("C:/Новая папка (3)/666.txt");
    while(getline(in, str))
        str1 += str;
    std::cout << str1.length();
    system("pause");
    return 0; 
}
0
FreeMan108
121 / 121 / 6
Регистрация: 04.03.2013
Сообщений: 370
04.11.2013, 20:12 #15
Вот так можно с stdio.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    string str;
    char szBuf [256];
    FILE *pFile = fopen ("2.txt", "r");
    
    fscanf (pFile, "%s", szBuf);
    
    fclose (pFile);
    
    str = szBuf;
    
    cout << str << endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
0
04.11.2013, 20:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 20:12
Привет! Вот еще темы с ответами:

Как считать текст с файла ? - C++
Как считать текст с файла (например .txt) а потом в другой пустой файл записать текст с первого документа?

Как считать массив из файла - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() { setlocale(0,&quot;&quot;); const int...

Как считать из файла в массив? - C++
Подскажите как из файла который имеет такую структуру 10|25|45| считать в массив из файла(test.txt) одни цифры, то есть | - является...

Как считать из бинарного файла - C++
Здравствуйте, я написала процедуру считывания из бинарного файла, но в результате выводится непонятный набор букв. Как сделать что бы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru