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

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

Войти
Регистрация
Восстановить пароль
 
T-L-oleg
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 5
#1

Функция get() разъясните ситуацию - C++

06.03.2013, 21:16. Просмотров 266. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<fstream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "russian");
 
    char str[80];
 
    ifstream in("test", ios::in | ios::binary);
 
    in.get(str, 80);
    cout << str;
 
    in.close();
 
    return 0;
}
Текст файла "test"

C++
1
Всем привет!
В результате при выполнении программы, выводится: "Всем привет!", и тут же замещается текстом: "Для продолжения нажмите любую клавишу . . .", изменял символ разделения на: '!', и все прошло штатно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция get() разъясните ситуацию (C++):

Разъясните ситуацию с ссылками. - C++
#include &lt;iostream.h&gt; void main(void) { int x=777; int &amp;ir = x; double &amp;dr=x; cout&lt;&lt;&quot; x = &quot;&lt;&lt;x&lt;&lt;endl; ...

Разъясните ситуацию с видимостью объекта - C++
В общем узнал что внутри классов можно описывать структуры, подклассы и т.д. и т.п. Вроде удобно, решил использовать это. При попытке...

Разъясните ситуацию с возвратом объекта или ссылки на объект - C++
CValue my_f(15, false); CValue my_t(5, false); ... my_f = my_t + 2; Переопределение операторов сложения и...

SEH; функция-фильтр необработанных исключений устраняет исключительную ситуацию, но почему-то вызывается постоянно - C++
Ну то есть цель: должна сделать так, чтобы исключительная ситуация больше не возникала и возвратить EXCEPTION_CONTINUE_EXECUTION. Отсюда...

Проясните ситуацию с пространствами имен - C++
Имеется программа, состоящая из двух файлов, например file1.cpp и file2.cpp Написав только в одном из них после директив препроцессора: ...

Обработать исключительную ситуацию деления на нуль - C++
Помогите написать программу с обработкой исключительной ситуации деления на нуль, пожалуйста. Вот тут что то есть, или это не то? Я что то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
06.03.2013, 21:38 #2
T-L-oleg, вот так работает)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include<iostream>
#include<fstream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "russian");
 
    char str[80];
 
    ifstream in("test.txt", ios::in | ios::binary);
 
    in.getline(str, sizeof(str), '\n');
    cout << str << "\n";
    in.close();
 
    return 0;
}
Добавлено через 3 минуты
T-L-oleg, ваш код так же будет работать если просто после вывод сделать так

C++
1
cout << str << endl;
или

C++
1
cout << str << "\n";
тут уже на вкус
T-L-oleg
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 5
06.03.2013, 23:39  [ТС] #3
Извиняюсь за то что ненаписал сразу, но я знаю как можно вывести нужную строку, проблема лишь в том, что я немогу понять почему происходит замещение, если можно, объясните наиболее объективно, я лишь новичек
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
07.03.2013, 00:26 #4
T-L-oleg,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
#include<iostream>
#include<fstream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "russian");
 
    char str[80];
 
    ifstream in("test.txt", ios::in);
 
    in.get(str, 80);
    cout << str;
 
    in.close();
    return 0;
}
думаю такой результат вас устроит

Добавлено через 29 минут
T-L-oleg, Вы открываете файл в бинарном режиме, так и пользуйтесь функциями для работы с бинарными файлами

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
#include "stdafx.h"
#include<iostream>
#include<fstream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "russian");
 
    ifstream in("test.txt", ios::binary);
 
    in.seekg (0, in.end);
    int length = in.tellg();        //определяем длину содержимого файла
    in.seekg (0, in.beg);            //в начало файла
 
    char *str = new char[length];       //выделяем память
 
    in.read(str, length);               //считываем
    str[length] = '\0';
    cout << str;                        //выводим
    in.close();
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2013, 00:26
Привет! Вот еще темы с ответами:

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

Разъясните пожалуйста - C++
int sd(int n, int d = 1) { if(n == 0) { return 0; } else { return d &lt;= n ? (n % d == 0...

Разъясните код - C++
Здравствуйте! Расскажите, пожалуйста, что обозначает это, почему вообще так пишется: #define STATE(name) DWORD WINAPI name(DWORD...

Разъясните задание - C++
Сформировать динамический массив, состоящий из динамических строк. (Это я понял как сделать). Но нужно еще &quot;Добавить строку с заданным...


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

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

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