Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Дима_Кирсанов
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
1

Как обнулять Ch при каждом новом чтении символов из строки?

19.09.2016, 13:40. Просмотров 293. Ответов 6
Метки нет (Все метки)

Можно ли обнулять Ch при последовательном чтении символов строки? Я имею ввиду что-нибудь похожее на Ch := ''; в Паскале. Если нет, то как избежать ситуации: когда строка считалась до конца, состояние EOF == TRUE, но Сh хранит значение последнего символа строки, вместо символа "\n".

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 <fstream>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::ifstream;
using std::ofstream;
 
int main()
{
  char Ch;
  ifstream F;
  F.open("F.txt");
  if(!F)
  {
    cout << "Error opening F.txt" << endl;
    return 1;
  }
  while(!F.eof())
  { 
    F.get(Ch);
    cout << "Ch == " << Ch << endl;
    // Сh = ""; //error C2065: 'Ch' : undeclared identifier
  }  
}
F.txt : 1234

Добавлено через 6 минут
первый скопировал не ту ошибку.

// Сh = ""; //error C2440: '=' : cannot convert from 'const char [1]' to 'char'
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2016, 13:40
Ответы с готовыми решениями:

Как обнулять переменную после записи строки символов?
Есть код программы, в которой создан указатель на строку. В эту строку записываю текст, если...

Ошибка при чтении символов строки
Здравствуйте, уважаемые форумчане! Решил вспомнить программирование и написать программу, которая...

Ошибка при чтении символов строки
static char strNAME = {&quot;D\\0000.f&quot;}; // &lt;&lt;-- ... void save_mesto_in_file(int r, int m) {...

Ошибка при чтении символов строки
Здравствуйте, уважаемые программисты! Решил написать программу, которая бы определяла...

Ошибка при чтении символов строки
Помогите с кодом #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; char * Simvol;...

6
Байт
Эксперт C
21897 / 13659 / 2882
Регистрация: 24.12.2010
Сообщений: 29,076
19.09.2016, 14:27 2
Цитата Сообщение от Дима_Кирсанов Посмотреть сообщение
что-нибудь похожее на Ch := ''; в Паскале.
C++
1
Ch = 0;
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
19.09.2016, 14:28 3
Сам цикл неправильный. На днях об этом уже спрашивали.
C++
1
2
3
4
  while (F.get(Ch))
  { 
    cout << "Ch == " << Ch << endl;
  }
0
Дима_Кирсанов
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
19.09.2016, 15:06  [ТС] 4
[quote="nmcf;9556112"]Сам цикл неправильный. На днях об этом уже спрашивали.
C++Выделить код

C++
1
2
3
4
while (F.get(Ch))
 { 
   cout << "Ch == " << Ch << endl;
 }
[quote]


Пусть он "не правильный", но зато когда перед вами будет стоять задача сравнения содержимого 2х файлов по значению Ch, вашим методом вы с ней не справитесь. Попробуйте сами:

F1: 1234EOF
F2:1234(перенос строки)
EOF
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
19.09.2016, 16:49 5
Может сразу трёх? Я комментирую то, что ты показал в первом сообщении.
Суть в том, что нужно проверять состояние сразу после get(), и только если всё в порядке, использовать символ. Обнуление тебе не поможет.
0
Дима_Кирсанов
5 / 5 / 7
Регистрация: 08.10.2010
Сообщений: 228
19.09.2016, 18:22  [ТС] 6
Цитата Сообщение от nmcf Посмотреть сообщение
Суть в том, что нужно проверять состояние сразу после get()
ты имеешь ввиду состояние EOF()?
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
19.09.2016, 19:42 7
Можно просто проверять поток:
C++
1
if (!F) //...
0
19.09.2016, 19:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2016, 19:42

Ошибка при чтении символов строки
Как я понял, что ошибка из-за функции ChooseAnswer. При использовании return. Если в каждый Case...

Ошибка при чтении символов строки
Ошибка при чтении key_text при вызове метода object_yes_no(), почему? //Создание класса...

Ошибка при чтении символов строки
Связана ли данная ошибка с этим: &lt;Имеется проблема, связанная с gets(), о которой следует знать:...


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

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

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