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

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

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

Файл в переменную - C++

20.07.2010, 23:17. Просмотров 500. Ответов 4
Метки нет (Все метки)

Здравствуйте, подскажите, пожалуйста, как "перекинуть" файл в переменную?
Допустим, я открываю файл:
C++
1
FILE * fp = fopen ( "/text.txt", "rt" );
Как дальше получать строки, если не известно, сколько будет символов в строке (а строк несколько)?
Какой тип переменной использовать при приёме?

Примеры очень даже приветствуются.
Мой уровень знания C++: Новичёк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2010, 23:17     Файл в переменную
Посмотрите здесь:

Запись данных в переменную и в файл C++
Имеется файл .txt с данными, в котором хранятся города и расстояния между ними. Как присвоить каждому городу и числу(расстоянию) свою переменную ? C++
C++ Сохранить переменную
C++ Вынести переменную в заголовочный файл
Ввод данных в переменную C++
Не считает переменную C++
Возможно ли целочисленную переменную записать в файл как целочисленную, а не её символьное представление? C++
C++ Не видит переменную
C++ Считать файл в переменную типа char, и работать посимвольно
C++ Обьяснить переменную
Пишем программу, считывающую переменную X и вычисляем значение уравнения. Результат записываем в файл Out.txt C++
C++ Процедура, записывающая в переменную X минимальное из значений X и Y, а в переменную Y – максимальное

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
20.07.2010, 23:28     Файл в переменную #2
Можно читать построчно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    FILE * f = NULL;
 
    if (!(f = fopen("input.txt", "rt")))
        return 1;
 
    char * str = new char [300];
 
    while (fgets (str, 300, f))
        cout << str;
    cout << endl;
 
    fclose (f);
    return 0;
}
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
20.07.2010, 23:41  [ТС]     Файл в переменную #3
Спасибо, Дима, но вот,
Цитата Сообщение от .::.DIMA.::. Посмотреть сообщение
C++
1
2
while (fgets (str, 300, f))
        cout << str;
если длина строк неизвестна?
easybudda
Эксперт С++
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
21.07.2010, 01:17     Файл в переменную #4
SKDzR, Вы для начала с языком определитесь. fopen() - функция языка С, а не С++. На С оно примерно так выглядит:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
 
#define FILE_NAME "file.txt"
 
int main(void){
    FILE * f;
    char * buf;
    long len;
 
    if ( ( f = fopen(FILE_NAME, "rb") ) == NULL ){
        fprintf(stderr, "Can't open file %s for input!\n", FILE_NAME);
        exit(EXIT_FAILURE);
    }
 
    fseek(f, 0L, SEEK_END);
    if ( ( len = ftell(f) ) < 1 ){
        fprintf(stderr, "File is empty or error reading file!\n");
        exit(EXIT_FAILURE);
    }
    rewind(f);
 
    if ( ( buf = (char*)malloc(len + 1) ) == NULL ){
        fprintf(stderr, "Memory error!\n");
        exit(EXIT_FAILURE);
    }
    if ( fread(buf, 1, len, f) != len ){
        fprintf(stderr, "Can't read file!\n");
        exit(EXIT_FAILURE);
    }
    buf[len] = 0;
 
    fclose(f);
 
    printf("Content of file %s:\n\n", FILE_NAME);
    printf("%s\n", buf);
 
    free(buf);
    exit(EXIT_SUCCESS);
}
На С++ немного по-другому, но логика та же...
.::.DIMA.::.
142 / 142 / 4
Регистрация: 26.10.2008
Сообщений: 782
21.07.2010, 01:28     Файл в переменную #5
Цитата Сообщение от SKDzR Посмотреть сообщение
если длина строк неизвестна?
Можно использовать std:string.
Yandex
Объявления
21.07.2010, 01:28     Файл в переменную
Ответ Создать тему
Опции темы

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