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

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

Войти
Регистрация
Восстановить пароль
 
Монтгомери
3 / 3 / 0
Регистрация: 10.09.2013
Сообщений: 129
#1

Чтение символьного массива из файла и вывод на экран - C++

16.06.2014, 21:43. Просмотров 1165. Ответов 8
Метки нет (Все метки)

Задание было: прочитать из файла символьный массив и обработать его.
Т.к. нам чтение из файла пока не давали, пришлось искать самому.
Решил для начала сделать программу чтения из файла и вывода на экран - мол, проверить, всё ли правильно понял.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
void main(void)
{ifstream input_file("C:\\file.txt");
string s;
input_file>>s;
int n=s.length();
char *line=new char[n];
while(!input_file.eof())
input_file.getline(line,sizeof(line));
for(int i=0;i<sizeof(line);i++)
cout<<line[i];
system("pause");}
Но вместо вывода на экран, я вижу только мигающий курсор и всё :-\
Подскажите, где я сделал не так?
И что заменить, чтобы работало?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2014, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение символьного массива из файла и вывод на экран (C++):

Чтение из файла и вывод на экран - C++
Помогите разобраться: 1)Чтение из файла Программа должна выводить на экран данные сохраненные ею же в формате .txt, у меня не...

Чтение файла и вывод его содержимого на экран - C++
помогите разобраться с чтением файла и выводом его содержимого на экран... а то что ни как не получается... запутался... :wall:

Чтение текста из файла и вывод на экран предложений без запятых - C++
Помогите, пожалуйста, написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. ...

Чтение символьного массива посредством указателя - C++
Доброго времени суток, подскажите способы чтения символьных строк с помощью указателя. Вот мой вариант (подскажите бред или нет) ...

Чтение и вывод массива из файла - C++
всем привет! пытаюсь постичь азы си++, но кое-что не получается. этот код должен был реализовать запись в файл матрицу случайных чисел и...

Не могу разобраться. Чтение и вывод на экран всего содержимого файла .txt на консоль - C++
#include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; void main() { ...

8
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.06.2014, 21:54 #2
Если совсем простой вариант, то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void main(void)
{
    ifstream input_file("C:\\file.txt");
 
    char* line = new char[512];
    int i = 0;
 
    while(!input_file.eof())
        line[i++] = input_file.get();
    line[i] = '\0';
 
    for (int i = 0; line[i] != '\0'; ++i)
        cout << line[i];
    cout << endl;
 
        delete[] line;
    system("pause");
}
1
Монтгомери
3 / 3 / 0
Регистрация: 10.09.2013
Сообщений: 129
16.06.2014, 22:19  [ТС] #3
Цитата Сообщение от Issues Посмотреть сообщение
Если совсем простой вариант, то можно так:
А если для начала читать содержимое файла как string s, узнавать n=s.length(), а потом размерность line делать равной n?
Как тогда будет выглядеть код?
P.S. Просто за подобное обещали пару баллов добавить.
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.06.2014, 22:25 #4
Монтгомери, у тебя в файле одна строка всего?
0
Монтгомери
3 / 3 / 0
Регистрация: 10.09.2013
Сообщений: 129
16.06.2014, 22:39  [ТС] #5
Да, только одна. Это в условии было
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.06.2014, 22:40 #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
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <fstream>
 
using namespace std;
 
void main(void)
{
    const char* filename = "C:\\file.txt";
    ifstream input_file(filename);
 
    int n = 0; // количество символов в файле
 
    for(; !input_file.eof(); ++n)
        input_file.get();
 
    input_file.close();
    input_file.open(filename);
 
    if (n == 0)
        return;
 
    char* line = new char[n];
    int i = 0;
 
    while(!input_file.eof())
        line[i++] = input_file.get();
 
    for (int i = 0; i < n; ++i)
        cout << line[i];
    cout << endl;
 
    input_file.close();
    delete[] line;
 
    system("pause");
}
это будет работать даже если не одна строка.
1
Монтгомери
3 / 3 / 0
Регистрация: 10.09.2013
Сообщений: 129
16.06.2014, 22:41  [ТС] #7
Но может быть любой длины, поэтому за предусмотрение разных вариантов добавят те самые пару баллов.

Добавлено через 1 минуту
О, спасибо большое.
Значит, нужный массив - это line[]?
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
16.06.2014, 22:43 #8
Цитата Сообщение от Монтгомери Посмотреть сообщение
Значит, нужный массив - это line[]?
да.
1
Монтгомери
3 / 3 / 0
Регистрация: 10.09.2013
Сообщений: 129
16.06.2014, 22:50  [ТС] #9
А если нужно будет файл вводить пользователю, то что поставить вместо
C++
1
const char* filename = "C:\\file.txt";
Я так понимаю, массив filename надо вводить с клавиатуры?
Это так?
C++
1
gets(filename);
0
16.06.2014, 22:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2014, 22:50
Привет! Вот еще темы с ответами:

Чтение текста из файла и вывод на экран только тех предложений, которые не содержат запятых - C++
нужна программа, которая считывает текст из файла и выводит на экран только предложения не содержащие запятых

Вывод символьного массива - C++
Не выводит все что дальше пробела ( Как пофиксить? И чем это обусловлено ? char text=&quot; &quot;; cout&lt;&lt;&quot;enter text:&quot;; cin&gt;&gt;text; int...

Вывод массива из файла на экран - C++
С помощью какой команды лучше вывести массив из файла? вот код: int ConsiderTheValue(int* Array, int N) { FILE* f =...

Вывод в консоль двумерного символьного массива - C++
Есть некий массив. char slovar = { {&quot;Slovo &quot; , &quot;Opredelenie\n&quot;} {&quot;slovo2 &quot;, &quot;Opredelenie2\n&quot;} } Надо что бы он...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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