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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.59
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
#1

Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? - C++

29.07.2010, 16:02. Просмотров 4064. Ответов 9
Метки нет (Все метки)

Нужно прочесть из файла значения в переменные разделенные пробелами. Как это проще сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
29.07.2010, 16:21     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #2
Попробуй scanf
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.07.2010, 16:22     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #3
C
1
2
3
4
5
int a, b, c;
FILE * f;
/* открыть файл, убедиться, что открылся */
if ( fscanf(f, "%d %d %d", &a, &b, &c) != 3 )
  /* выдать сообщение об ошибке, завершить программу */
C++
1
2
3
4
5
6
int a, b, c;
std::ifstream ifs(file_name);
// убедиться, что файл открыт
ifs >> a >> b >> c;
if ( ifs.bad() )
  // сообщение об ошибке, выход.
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
29.07.2010, 16:30  [ТС]     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #4
easybudda, Спасибо...
А если у меня несколько строчек?? И в каждой из них нужно считывать по несколько переменных?
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
29.07.2010, 16:35     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #5
AKE, Имхо аналогично. ХОтя не особо понятно, что именно вам нужно.
Что значит: несколько строчек?? И в каждой из них нужно считывать по несколько переменных?

Несколько строчек в файле? Несколько строчек в программе?

Несколько строчек в файле:
C++
1
 ifs>> a >> b >> c
и поехали далее.

Пример. Переменные a,b,c,d,e,f,g.
В файле 20, 30, 40 на первой строке, 50, 60, 70 на второй или на любой другой строке, 80 на третьей или на любой другой (после строки на которой 50, 60, 70) строке.
C++
1
ifs>> a >> b >> c >> d >> e >> f >> g;
После этого:
a=20, b=30, c=40, d=50 ect.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.07.2010, 16:49     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #6
Цитата Сообщение от AKE Посмотреть сообщение
А если у меня несколько строчек?? И в каждой из них нужно считывать по несколько переменных?
я бы сделал структуру, содержащую переменные, читал построчно файл и заполнял бы очередной элемент структуры данными из строки...
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
29.07.2010, 16:49  [ТС]     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #7
Lavroff, спасибо - теперь ясно...
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
29.07.2010, 17:53  [ТС]     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #8
И ещё вопрос.
А если встречается пустая строка то как её пропустить??
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.07.2010, 18:04     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #9
Цитата Сообщение от AKE Посмотреть сообщение
А если встречается пустая строка то как её пропустить??
C++
1
2
3
4
5
6
7
8
9
...
std::ifstream ifs;
std::string buf;
while ( std::getline(ifs, buf) ){
    if ( buf.empty() || buf.find_first_not_of(" \t\n") == std::string::npos )
        continue;
    // обработать строку...
}
...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2010, 18:10     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале?
Еще ссылки по теме:
Есть ли аналог isalpha, только для string C++
Есть ли аналог exp, возвращающий long double? C++
Есть ли какой-нибудь аналог c# using или python with в c++ ? C++
Есть ли в С аналог функции explode(или split)? C++
Есть ли аналог remove_if для соседних элементов? C++

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

Или воспользуйтесь поиском по форуму:
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
29.07.2010, 18:10  [ТС]     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале? #10
easybudda, Спасибо...
Yandex
Объявления
29.07.2010, 18:10     Есть ли в С++ аналог Readln(F, var1,var2,...) в Паскале?
Ответ Создать тему
Опции темы

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