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

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

Войти
Регистрация
Восстановить пароль
 
 
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
#1

Чтение по строкам из текстового файла - C++

06.08.2016, 22:31. Просмотров 326. Ответов 15
Метки нет (Все метки)

Как взять каждую строку из файла и присвоить каждой свою переменную?
Содержание файла:
intro
80
4
114
76
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2016, 22:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение по строкам из текстового файла (C++):

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib> using namespace std; struct...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и...

Чтение из текстового файла - C++
Всем доброго времени суток. Допустим у меня есть файл (file.txt) Содержание текстового файла: { 12:20 13:10 13:20 }...

Чтение текстового файла - C++
Всем привет. Не могу понять как читать из текстового файла значения разных типов. Вот мне например нужно считать файл с таким содержанием: ...

Чтение из текстового файла - C++
как сделать чтобы прога выводила на экран слова из текстового документа пока не натыкалась на символ ";" а после этого прога начиналась с...

Чтение из текстового файла - C++
Вот код: #include <iostream> using std::cout; using std::endl; using std::cin; void main() { setlocale(LC_ALL,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
07.08.2016, 09:25 #2
>>.
0
Operok
152 / 150 / 43
Регистрация: 15.02.2015
Сообщений: 436
Завершенные тесты: 2
07.08.2016, 15:28 #3
Цитата Сообщение от Kawumek Посмотреть сообщение
каждую строку
getline(file_in, line, '\n');
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
07.08.2016, 16:27 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
nmcf, >> читает по словам, а не по строкам.

Kawumek, если в 1 строке текст, а остальное числа, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
char intro[100];
int data[4];
ifstream file("file.txt");
if(file)
{
   file.getline(intro,100);
 
   for(int i=0;i<4;i++)
      file_in>>data[i];
   ...
}
0
nmcf
5319 / 4639 / 1551
Регистрация: 14.04.2014
Сообщений: 18,452
07.08.2016, 16:58 #5
Цитата Сообщение от zss Посмотреть сообщение
читает по словам, а не по строкам
Я ориентируюсь на его данные. Там пробелов не замечено. >> позволит сразу получить число, а после getline() ещё одно преобразование нужно.
2
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
07.08.2016, 21:46  [ТС] #6
Цитата Сообщение от zss Посмотреть сообщение
Kawumek, если в 1 строке текст, а остальное числа, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
char intro[100];
int data[4];
ifstream file("file.txt");
if(file)
{
* *file.getline(intro,100);
for(int i=0;i<4;i++)
* * * file_in>>data[i];
* *...
}
на file_in vs2015 ругается, вроде все библиотеки, которые надо - приклеил
C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <ctime>
#include <windows.h>
#include <fstream>
#include <string>
#include <locale>
#include <lmcons.h>
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
07.08.2016, 22:01 #7
Kawumek,
надеюсь, Вы все же догадались, что это опечатка.
Посмотрите - открыт поток не file_in, а file
C++
1
2
#include <iostream>
#include <fstream>
0
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
07.08.2016, 22:43  [ТС] #8
zss, а теперь другая ошибка "Exception thrown at 0x00007FFDEC0C5E3D (msvcp140.dll)", проблема точно в чтении\записи в переменные. появляется при попытке вывести их на экран(чтобы проверить работает-ли или нет)
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
08.08.2016, 07:52 #9
Приведите код, который Вы компилируете.
И учитесь пользоваться отладчиком
Как пользоваться отладчиком (в Visual Studio)
0
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
08.08.2016, 10:03  [ТС] #10
zss,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    int day = 1;
    int top = 2;
    int happiness = 3;
    int vac = 4;
    ofstream save("save.txt", ios_base::out | ios_base::trunc);
    save << "intro" << endl << day << endl << top << endl << happiness << endl << vac << endl;
    int data[4];
    ifstream file("save.txt");
    if (file)
    {
        file.getline(introsave, 100);
        for (int i = 0; i < 4; i++) {
            file >> data[i];
            cout << data[i];
        }
    }
    system("pause");
Благодаря отладчику я и понял, что проблема в этом
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
08.08.2016, 10:51 #11
Вы не закрыли файл при записи прежде, чем открывать на чтение

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    int day = 1;
    int top = 2;
    int happiness = 3;
    int vac = 4;
    ofstream save("save.txt");
    if(save)
    {
        save << "intro number 1" << endl << day << endl << top << endl << happiness << endl << vac << endl;
        save.close();
    }
    int data[4];
    char introsave[100];
    ifstream file("save.txt");
    if (file)
    {
        file.getline(introsave, 100);
        for (int i = 0; i < 4; i++) {
            file >> data[i];
            cout << data[i];
        }
    }
    system("pause");
0
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
08.08.2016, 12:10  [ТС] #12
zss, я закрывал, в этом не было проблемы.
проблема в
C++
1
file.getline(introsave, 100);
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
08.08.2016, 12:54 #13
А такое объявление есть?
Цитата Сообщение от zss Посмотреть сообщение
char introsave[100];
0
Kawumek
0 / 0 / 0
Регистрация: 06.08.2016
Сообщений: 7
08.08.2016, 13:05  [ТС] #14
zss, оно указано в параметрах main
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
08.08.2016, 13:09 #15
Цитата Сообщение от Kawumek Посмотреть сообщение
указано в параметрах main
Нельзя писать в параметры командной строки, т.к. это текстовые константы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.08.2016, 13:09
Привет! Вот еще темы с ответами:

Чтение из текстового файла - C++
Условие задачи: В текстовый фаил (c:\program\zitel.txt) записаны: - фамилия - город - улица - дом - квартира для...

Чтение из текстового файла - C++
Добрый день. Проблема моя в следующем: есть текстовой файл примерно следующего содержания a 10 2 2 b 5 5 1 c 3 7 0 d 5 22 0 ...

Чтение текстового файла - C++
Помогите с программой, пожалуйста. В ворде код программы, а в текстовом файле то, что должно быть на выходе.

Чтение из текстового файла - C++
Нашел программу для чтения из файла информации: Номер предмета, Наименование, Фамилия. Помогите создать текстовый документ под программу,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.08.2016, 13:09
Ответ Создать тему
Опции темы

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