Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переход на новую строку в файле 
V
    Опции темы
Krav
Дата 28.3.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



Есть входной файл:
Код
1    127.1    73.6    53.5
2    127.4    73.5    53.9

Необходимо прочитать первых три значения в строчке, потом перейти на следующую, то есть четвертое значение не трогать.
До этого писал на pascal, поэтому не знаю как реализовать переход на новую строку на с++.
Ниже набраный код не переходит на новою строку.
Код
char str[80];
do
 {
   f1>>time[k]>>T1[k]>>T2[k];
   f1.getline(str,80);
 }
k++;
while (!f1.eof())

Помогите с написанием

Это сообщение отредактировал(а) Krav - 28.3.2009, 22:18
PM MAIL WWW ICQ Jabber   Вверх
zim22
Дата 29.3.2009, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Krav @  28.3.2009,  22:01 Найти цитируемый пост)
четвертое значение не трогать

а вы потрогайте
Код
#include <sstream>
#include <fstream>

int main(int argc, char *argv[])
{

  int time; double T1, T2, rubbish;
  std::ifstream in("file.txt");
  
  do {
    in >> time >> T1 >> T2 >> rubbish;
  } while (in);
    return 0;
}




--------------------
PM MAIL   Вверх
Krav
Дата 29.3.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 24.9.2007
Где: Киев

Репутация: нет
Всего: нет



спасибо за совет

Это сообщение отредактировал(а) Krav - 29.3.2009, 17:21
PM MAIL WWW ICQ Jabber   Вверх
zim22
Дата 29.3.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Krav @  29.3.2009,  13:20 Найти цитируемый пост)
возникла проблема при передаче массива в процедуру

одна тема - один вопрос.


--------------------
PM MAIL   Вверх
bsa
Дата 29.3.2009, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Имхо, лучше делать так:
Код
#include <fstream>
#include <sstream>
#include <string>

int main()
{
   std::ifstream file("file.txt");
   std::string line;
   while( std::getline(file, line) ) { //читаем построчно
       std::istringstream stream(line); //затем из каждой считанной строки
       int time;
       double T1, T2;
       stream >> time >> T1 >> T2; //извлекаем 3 первых числа (и не важно, сколько их еще)
       //....
   }
   return 0;
}


Это сообщение отредактировал(а) bsa - 29.3.2009, 22:28
PM   Вверх
zim22
Дата 29.3.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(bsa @  29.3.2009,  21:04 Найти цитируемый пост)
 std::ostringstream stream(line); //затем из каждой считанной строки

std::istringstream
Цитата(bsa @  29.3.2009,  21:04 Найти цитируемый пост)
Имхо, лучше делать так:

а если необходимо считать 1, 5, 8 значение. ведь всё-равно придётся переменную rubbish использовать тогда?



--------------------
PM MAIL   Вверх
bsa
Дата 29.3.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(zim22 @ 29.3.2009,  21:11)
Цитата(bsa @  29.3.2009,  21:04 Найти цитируемый пост)
 std::ostringstream stream(line); //затем из каждой считанной строки

std::istringstream
исправил
Цитата(zim22 @ 29.3.2009,  21:11)
Цитата(bsa @  29.3.2009,  21:04 Найти цитируемый пост)
Имхо, лучше делать так:

а если необходимо считать 1, 5, 8 значение. ведь всё-равно придётся переменную rubbish использовать тогда?
тогда да  smile 

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0759 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.