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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 102, средняя оценка - 4.80
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
#1

Чтение из файла в массив char - C++

07.01.2011, 10:09. Просмотров 15148. Ответов 17
Метки нет (Все метки)

Доброе время суток господа. У меня есть массив char a[ ]="I am text" кпримеру, сама программа для работы с массивом написана. Но мне надо данные из файла брать т.е. у меня есть пустой массив и файл с текстом, надо текст присвоить массиву...я делал следующее:
C++
1
2
3
4
char a[99];
FILE *f;
f=fopen("text.txt","r");
fscanf(f,"%[^/n]s",&a);
укажите на ошибку или предложите свой вариант.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 10:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из файла в массив char (C++):

Чтение из файла и запись в массив char - C++
Здравствуйте форумчане. Столкнулся с незнанием языка. У меня есть поток, который читает файл. Как мне этот потом записать в массив ? ...

Чтение текстового файла в вектор типа char - C++
Имеется текстовый файл. Необходимо прочитать его ПОЛНОСТЬЮ, включая все символы переноса строки (и 0A и 0D), все пробелы, нулевые символы...

Считать из файла в массив char - C++
Имеется массив char, в который из файла нужно считать строку. Для считывания использую данную команду: ifile.getline(str, sizeof(str)); ...

Считывание из файла в char' овский массив - C++
Да вопрос боян, но у меня почему-то все символы программа считывает, как один и тот же символ. Дайте пожалуйста код, который считает в...

Запись первого слова из файла в массив char - C++
Нужно записать первое слово из каждой строки файла в массив char, цифры оно записывает нормально а вот слова не хочет записывать. Можете...

Считывание текста из файла text в массив char - C++
Такая проблема, есть файл с текстом There are many big and small libraries everywhere in our country. They have millions of books in...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 10:20 #2
Наверное, ты подразумевал вот это:
C
1
fscanf(f,"%[^\n]s",&a);
Можно также использовать fgets - читает строку из файла
1
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 10:54  [ТС] #3
Да, я именно это имел ввиду. Значит я правильно написал? Понимаете в чем дело, я написал программу для работы с массивом, если я fgetc использую, то придется работать с файлом?
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 11:00 #4
С помощью fgets считываешь строку из файла в массив и дальше работаешь с массивом
1
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 11:12  [ТС] #5
Напишите пожалуйста, как мне присвоить строку из файла f массиву a[100] при помощи fgets (я не понимаю как с ней работать), чтобы можно было работать непосредственно в самим массивом.
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 11:23 #6
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
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE 100
#define IFILE "input.txt"
 
int main()
{
    char buf[SIZE];
    FILE* f;
    if((f = fopen(IFILE, "r")) == NULL)
    {
        perror("fopen");
        exit(1);
    }
    
    if((fgets(buf, SIZE, f) == NULL) && ferror(f))
    {
        fprintf(stderr, "Error reading from stream\n");
        exit(2);
    }
    
    fputs(buf, stdout);
    exit(0);
}
1
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 11:28  [ТС] #7
Работает спасибо! А можно эту функцию использовать для записи в файл?
0
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
07.01.2011, 11:29 #8
Вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
#define SIZE_STR 100 // размер строки
 
int main(int argc, char *argv[])
{
    char text[SIZE_STR];
    FILE *my_file=fopen("file.txt","r"); // открытие файла
    fgets(text,SIZE_STR,my_file); //считываем строку разимером максимум
        // 100 символов из файла
    puts(text); // вывод (необязательно)
        fclose(my_file); // закрытие забыл
    return 0;
}
1
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 11:30 #9
Для записи используется fputs. Посмотри, у меня в примере оно есть
1
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
07.01.2011, 11:32 #10
для записи fprintf, fputs, fputchar. Везде первым аргументом указываем переменную типа FILE*.
1
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 11:33  [ТС] #11
Ага спасибо
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 11:33 #12
Цитата Сообщение от МаксимМВ Посмотреть сообщение
Везде первым аргументом указываем переменную типа FILE*.
Не везде
0
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 11:43  [ТС] #13
Как с помощью fprintf записать массив c в файл z,причем из массива надо взять всего int k=15 (т.е. 15 знаков)?
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
07.01.2011, 11:45 #14
Костяныч, записать массив какого типа?
Вообще, напиши подробней, что за задание
1
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,238
Записей в блоге: 2
07.01.2011, 13:32  [ТС] #15
тип char

Добавлено через 12 минут
Да я уже все сделал. Задание:Даны текстовые файлы F и G.Переписать в файл Q слова из файлов F и G поочередно, одно слово из F, другое из G. После окончания слов в одном из входных файлов, запись прекращается.
У меня этот самый G на 100 ячеек, в файл он записывает то что надо+ на оставшееся место хлам. Вот мне и нужно в файл записать этот G нужного мне текста.
Не G а Q, я перепутал!!!

Добавлено через 1 час 32 минуты
Как из массива char a[100] переписать в файл z лишь 10 знаков (int k=10)? с помощью fprintf
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 13:32
Привет! Вот еще темы с ответами:

Чтение из файла в массив - C++
Всем привет! Извините, если такая тема уже поднималась, но я ничего не нашла.... У меня такая задачка. Есть два файлика, в одном матрица...

Чтение из файла в массив - C++
Задача №6 Постройте программу, которая отслеживает пожертвования в Общество Защиты Влиятельных Лиц. Она должна запрашивать у пользователя...

Чтение из файла в массив - C++
Здравствуйте, уважаемые программисты. Подскажите, пожалуйста. Есть текстовый файл примерно такого содержания: 15, 50, 30 155 ...

Чтение из файла в массив - C++
Есть файл, с которого надо считать данные. 12 56 14 10 8 6 35 48 Почему вылетает? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.01.2011, 13:32
Ответ Создать тему
Опции темы

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