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

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

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

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

20.07.2010, 23:17. Просмотров 508. Ответов 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++
Помогите студенту! Надо написать программу для DOS, которая записывает данные в переменную до 200 мб а после окончания записывает эти...

Вынести переменную в заголовочный файл - C++
Почему если вынести объявление глобальной переменной в заголовочный файл при компиляции возникает ошибка ... already defined in main.obj

Считать файл в переменную типа char, и работать посимвольно - C++
считать файл в переменную типа char, а дальше с ней нужно работать посимвольно, так вот, как написать while(пока это не последний символ...

Пишем программу, считывающую переменную X и вычисляем значение уравнения. Результат записываем в файл Out.txt - C++
Задание звучит так. Дано вещественное число X. Вычислить z=2*(2*x+5)-0.24*100. Входной файл in . txt содержит в первой строке одно...

Не считает переменную - C++
Почему не считает переменную St ? При вводе любых значений она равняется 0 int a; int b; cin>>a; cin>>b; int h=b; int at=a/3;...

Сохранить переменную - C++
Доброго времени суток, товарищи. Задача: необходимо сохранить переменную по известному адресу, а затем её оттуда считать. Как...

Ссылка на переменную - C++
Я создал функцию A, которая вызывает ф-ю B, которая в свою очередь создает переменную X и возвращает ее Проблема в том, что ф-я A не...

Не видит переменную - C++
#include <iostream> using namespace std; int main() { int chislo; cin >> chislo; for (int i = 0; i < 100; i++); { if...

Обьяснить переменную - C++
В иходниках libav есть такая структура, int16_t (*motion_val); Обрашение к ней идет такое motion_val Обьясните не...

Указатель на const переменную - C++
Доброго всем здравия, просто хотел посмотреть на адрес const переменной, честное слово никакого злого умысла у меня не было. Компилятор...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
.::.DIMA.::.
143 / 143 / 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
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
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.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
21.07.2010, 01:28     Файл в переменную #5
Цитата Сообщение от SKDzR Посмотреть сообщение
если длина строк неизвестна?
Можно использовать std:string.
Yandex
Объявления
21.07.2010, 01:28     Файл в переменную
Ответ Создать тему
Опции темы

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