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

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

Войти
Регистрация
Восстановить пароль
 
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
#1

Файл - C++

06.10.2010, 21:35. Просмотров 502. Ответов 10
Метки нет (Все метки)

Как считать з файла строку з n символов, не используя библиотеку <stdio>???

Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2010, 21:35     Файл
Посмотрите здесь:

C++ Записует только одну букву в файл текс в файл
Файл: Записать в файл g целые числа b1..bn по следющим условиям: b[i] = i и b[i] = 2^i +3^(i+1) C++
C++ Дан символьный файл f. Добавить в его конец символы e,n,d (если это необходимо, использовать дополнительный файл g ).
error C4335: Обнаружен файл в формате Mac: преобразуйте исходный файл в формат DOS или UNIX C++
C++ Файл: Сформировать файл, элементами котого являются числа a1, a1*a2, a1*a2*a3,..., a1*a2*a3*...*an
C++ Записать из файла f четные цифры в файл g, а нечетные в файл h
C++ Чем открыть файл cсv файл в текстовом документе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
06.10.2010, 21:36     Файл #2
<fstream>
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
06.10.2010, 21:42  [ТС]     Файл #3
C++
1
2
3
4
5
6
ifstream file("text.txt",ios::in);
 while(!file.eof())
  {
    char str[255];
    file>>str;
  }
Так читает до первого пробела, а надо целую строку.

В <stdio> есть fgets(). Как читать без <stdio>???
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
06.10.2010, 21:43     Файл #4
юзай getline()
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 21:43     Файл #5
используй getline

Добавлено через 18 секунд
Asics^, опередил)
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
06.10.2010, 21:48     Файл #6
-comrade-, Вот так у меня считало целую строку даже без использование getline()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::ifstream f("1.txt");
    while(!f.eof())
    {
        std::string str;
        f >> str;
        std::cout << str;
    }
    std::cin.get();
}
Ну так лутче
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::ifstream f("1.txt");
    while(!f.eof())
    {
        char m[256];
        f.getline(m, 256);
        std::cout << m;
    }
    std::cin.get();
}
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
06.10.2010, 21:49  [ТС]     Файл #7
Ага, точно. Спасибо
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 21:50     Файл #8
Asics^, так оно у вас считало последовательно весь файл. А строка здесь не причем. В str так и осталось то, что между последний пробелом и концом файла.
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
06.10.2010, 21:53     Файл #9
gooseim, ну да,ето я поспешыл что то з выводом.
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
06.10.2010, 21:54  [ТС]     Файл #10
Цитата Сообщение от Asics^ Посмотреть сообщение
-comrade-, Вот так у меня считало целую строку даже без использование getline()
У меня немного другая задача, считать то надо і передать в другую функцию.
Подойдёт getline().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2010, 06:22     Файл
Еще ссылки по теме:

Шахматный турнир. Сформировать файл фамилий участников и файл результатов C++
Как считать файл построчно записывая в другой файл? C++
C++ Переписать все отрицательные числа в файл g, положительные — в файл h
C++ Разбиение метода класса на файл реализации и файл заголовка
Потерял cpp файл, а ехе-шник остался. Можно как-то декомпилировать файл обратно? C++

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

Или воспользуйтесь поиском по форуму:
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.10.2010, 06:22     Файл #11
C
1
2
3
4
5
6
7
    char line[1000];
    int c, i;
 
    /* getc может быть макросом или функцией, находится в stdio.h */
    for (i = 0; i < 1000 - 1 && (c = getc(ifp)) != EOF && c != '\n'; i++)
        line[i] = c;
    line[i] = '\0';
в C ты и файл не откроешь без stdio.h
Yandex
Объявления
07.10.2010, 06:22     Файл
Ответ Создать тему
Опции темы

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