这个c ++代码给了我错误,我不知道如何删除这些错误 的码
#include <iostream>
#include <string>
#include <fstream>
#include <cctype>
#include <iomanip>
using namespace std;
string& RaiseItToUpperCase(string& w)
{
int len = w.length();
for (int index =0; index <len; index++)
w[index]= toupper(w[index]);
return w;
}
void LoadData()
{
string filename;
while(true)
{
cout<<"Enter Data file:";
cin>>filename;
cout<<"Filename entered"<<filename<<endl;
ifstream myfile(filename.c_str());
if(!myfile.good())
{
cout<<"Please Enter a Valid text File"<<endl;
continue;
}
static std::string const targetExtension ("txt");
if (!(filename.size() >= targetExtension.size()
&& std::equal (filename.end() - targetExtension.size(),
filename.end(),
targetExtension.begin() ) ))
{
cout<<"File is not txt"<<endl;
continue;
}
break;
}
string i = filename;
string o;
cout<<"Enter an output file name:"<< endl;
cin>>o;
ofstream output;
ifstream input(filename);
output.open(o.c_str());
int charc =0;
int numw =0;
int longl =0;
int shortl =10000;
while (input>>1)
{
numw++;
charc = charc + i.length() +1;
if (i.length() > longl)
{
longl = i.length();
}
if (i.length() < shortl)
{
i =RaiseItToUpperCase(i);
output << i;
if(input.get() ==32)
{
output<<" ";
}
else
{
output<<"\n";
}
}
charc = charc - 1;
output<<"\nWord Counter Summary\n"<<endl;
output<<"Total Number of Words:"<<numw<<endl;
output<<"Total Number of Characters:"<<charc<<endl;
output<<" Largest Word Size:"<<longl<<endl;
output<<" Smallest Word Size"<<shortl<<endl;
}
}
int main ()
{
LoadData();
return 0;
}
这是c ++文件流程序,我正在尝试运行此代码,但它给了我错误,我无法弄清楚如何删除此错误
所以任何人都可以告诉我如何删除这些错误并使此代码运行
更新
这是错误:
错误1错误C2679:二进制&#39;&gt;&gt;&#39; :找不到哪个运营商需要 类型&#39; int&#39;的右手操作数(或者没有可接受的 转换)c:\ users \ acer \ documents \ visual studio 2012 \ projects \ consoleapplication15 \ consoleapplication15 \ sour ce.cpp 52 1 ConsoleA pplication15
并提前致谢
答案 0 :(得分:0)
您想在while (input>>1)
做什么?
如果你想读出一些东西:
int8_t
(或int16_t
/ int32_t
等)的整数:
int8_t number = 0;
while (input >> number)
char
:
char ch;
while (input >> ch)