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

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

04.11.2013, 18:45. Показов 13419. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2013, 18:45
Ответы с готовыми решениями:

Как попроще считать определённую строку из файла и присвоить её содержимое string переменной?
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;windows.h&gt; using namespace std; int main() {...

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

Тип String: считать данные из файла в массив строк
Есть файл с текстом вроде {10;название1;8;заметка} {5;название4;99;много строчный текст...

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

18
267 / 255 / 27
Регистрация: 27.09.2013
Сообщений: 876
Записей в блоге: 1
04.11.2013, 18:48 2
jastic7, http://kvodo.ru/urok-10-1-rabo... i-v-c.html вот тут почитайте, расписано с примерами)
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
04.11.2013, 18:50 3
Цитата Сообщение от jastic7 Посмотреть сообщение
fscanf(f1,"%s", &str);
str - это объект класса string
fscanf - Си'шная функция, которая об объектах вообще ничего не знает
&str - это адрес самого объекта.

Используйте cin,cout,cerr вместо Си'шных функций
0
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
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
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
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 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
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 20:03  [ТС] 12
хорошо, ну а вот теперь к примеру мне нужна длина строки этой.
я пишу вот чего
C++
1
int a=str.Length()
а он мне ошибку выдает.
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 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
121 / 121 / 32
Регистрация: 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
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
04.11.2013, 20:14 16
Цитата Сообщение от FreeMan108 Посмотреть сообщение
Вот так можно с stdio.
C++
1
#include <cstdio>
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 21:02  [ТС] 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 ?
0
Don't worry, be happy
17758 / 10526 / 2030
Регистрация: 27.09.2012
Сообщений: 26,502
Записей в блоге: 1
04.11.2013, 21:08 18
тоже самое, что и с объектом cout
C++
1
out << k ;
0
0 / 0 / 0
Регистрация: 01.11.2013
Сообщений: 14
04.11.2013, 21:14  [ТС] 19
Огромные вам лучи благодарности.
Ну и наверное последний вопрос.
Цитата Сообщение от jastic7 Посмотреть сообщение
while(getline(in, str));
Можно поподробнее вот эти строчки.
Я как представляю, что раз тут while, то getline считывает как то по особенному, возвращая ноль или не ноль, в данном случае он вернет ноль, чтобы цикл закончился.
Но у меня это как то всё сумбурно в голове.
Внесите пожалуйста ясность с:
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2013, 21:14
Помогаю со студенческими работами здесь

Как считать Listbox в string[]
for (int i = 0; i &lt; listBox1.Items.Count; i++) { sp = fsmpathtemp + &quot;|&quot;...

Как провильно считать из string в jpg
вот этим мотодом я считываю изображение в string string s =...

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

Как считать 1 букву в стороке типа string
Как считать 1 символ в стороке типа string

Как записать информацию в файл и считать ее в vector<string>
Как записать информацию в файл и считать ее в vector&lt;string&gt;? А потом еще вывести?

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


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

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

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