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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 18:45     Как считать из файла в string? #1
Чертовски глупый вопрос, но всё же.
По моим представлениям, это должно выглядеть так:
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ом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Folko
 Аватар для Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
04.11.2013, 18:48     Как считать из файла в string? #2
jastic7, http://kvodo.ru/urok-10-1-rabota-s-t...ylami-v-c.html вот тут почитайте, расписано с примерами)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 18:50     Как считать из файла в string? #3
Цитата Сообщение от jastic7 Посмотреть сообщение
fscanf(f1,"%s", &str);
str - это объект класса string
fscanf - Си'шная функция, которая об объектах вообще ничего не знает
&str - это адрес самого объекта.

Используйте cin,cout,cerr вместо Си'шных функций
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:01  [ТС]     Как считать из файла в string? #4
Croessmah, как их юзать то? поподробнее бы..
ТОрчОК
Заблокирован
04.11.2013, 19:09     Как считать из файла в string? #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; 
}
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:29  [ТС]     Как считать из файла в string? #6
Цитата Сообщение от ТОрчОК Посмотреть сообщение
std::
а что это?
ТОрчОК
Заблокирован
04.11.2013, 19:32     Как считать из файла в string? #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; 
}
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 19:40  [ТС]     Как считать из файла в string? #8
ТОрчОК, хорошо идем дальше, что значит
Цитата Сообщение от ТОрчОК Посмотреть сообщение
in("666.txt")
in перед скобкой ?
по моим догадкам раз мы считываем, то отсюда и in
если бы записывали, было бы out, верно?
ТОрчОК
Заблокирован
04.11.2013, 19:53     Как считать из файла в string? #9
файл из которого читаешь

Добавлено через 53 секунды
вместо 666.txt введи место хранения файла в компе
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 19:54     Как считать из файла в string? #10
Цитата Сообщение от jastic7 Посмотреть сообщение
а что это?
using namespace std
ТОрчОК
Заблокирован
04.11.2013, 20:02     Как считать из файла в string? #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; 
}
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 20:03  [ТС]     Как считать из файла в string? #12
хорошо, ну а вот теперь к примеру мне нужна длина строки этой.
я пишу вот чего
C++
1
int a=str.Length()
а он мне ошибку выдает.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 20:05     Как считать из файла в string? #13
C++
1
str.size()
C++
1
str.length()
ТОрчОК
Заблокирован
04.11.2013, 20:05     Как считать из файла в string? #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; 
}
FreeMan108
 Аватар для FreeMan108
120 / 120 / 6
Регистрация: 04.03.2013
Сообщений: 368
04.11.2013, 20:12     Как считать из файла в string? #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;
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 20:14     Как считать из файла в string? #16
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Вот так можно с stdio.
C++
1
#include <cstdio>
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 21:02  [ТС]     Как считать из файла в string? #17
ладно, с чтением из файла разобрались.
теперь вывод в файл.
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
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
FILE *f1, *f2;
int main()
{
    string str;
    ifstream in("INPUT.TXT");
    while(getline(in, str));
    int k=0;
    for(int i=0; i<str.length(); i++)
    {
        if( (str[i]==0) || (str[i]==6) || (str[i]==9))
        {
            k++;
        }
        if (str[i]==8)
        {
            k+=2;
        }
    ofstream out("OUTPUT.TXT");
 
 
 
}
как мне вывести k в файт OUTPUT.TXT ?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11822 / 6801 / 769
Регистрация: 27.09.2012
Сообщений: 16,869
Записей в блоге: 2
Завершенные тесты: 1
04.11.2013, 21:08     Как считать из файла в string? #18
тоже самое, что и с объектом cout
C++
1
out << k ;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2013, 21:14     Как считать из файла в string?
Еще ссылки по теме:

Как считать с файла C++
Записать в файл list (очередь) объектов, в которых содержатся строки string, и считать с файла обратно в list C++
C++ Считать текст из файла в строку типа std::string (файловый ввод/вывод)

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

Или воспользуйтесь поиском по форуму:
jastic7
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 21:14  [ТС]     Как считать из файла в string? #19
Огромные вам лучи благодарности.
Ну и наверное последний вопрос.
Цитата Сообщение от jastic7 Посмотреть сообщение
while(getline(in, str));
Можно поподробнее вот эти строчки.
Я как представляю, что раз тут while, то getline считывает как то по особенному, возвращая ноль или не ноль, в данном случае он вернет ноль, чтобы цикл закончился.
Но у меня это как то всё сумбурно в голове.
Внесите пожалуйста ясность с:
Yandex
Объявления
04.11.2013, 21:14     Как считать из файла в string?
Ответ Создать тему
Опции темы

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