У меня есть вопрос относительно оператора >>
.
Я написал программу для подсчета количества слов в двоичном файле.
Мой вопрос о цикле while, не должен ли >>
читать пробел, идти в цикл, увеличивать c, но просто не помещать ничего в w?
Он дает мне выход 4, но подсчет пробелов не должен быть 10?
Любая помощь приветствуется. Мой код ниже:C++ - Как работает оператор >>?
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
ofstream a;
ifstream b;
void main()
{
clrscr();
char w[20];
a.open("newf.txt",ios::binary);
a<<"This is an example\n";
a.close();
b.open("newf.txt");
int c=0;
while(b>>w)
{
c++ ;
}
cout<<c;
b.close();
getch();
}
Большинство перегрузок 'operator >>' (включая тот, который вы вызываете) [пропустить все ведущие пробелы первой вещи] (http://en.cppreference.com/w/cpp/concept/FormattedInputFunction). –
Я не уверен, что вы знаете об этом, но используете устаревшие заголовки. Например, '' следует использовать вместо '''. –
buratino
См. Также: http://en.cppreference.com/w/cpp/io/manip/skipws –