如何使这个c ++代码有效?

时间:2017-09-20 05:24:10

标签: c++ fstream ofstream

这个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

并提前致谢

1 个答案:

答案 0 :(得分:0)

您想在while (input>>1)做什么? 如果你想读出一些东西:

  • 如果您想要读取int8_t(或int16_t / int32_t等)的整数: int8_t number = 0; while (input >> number)
  • 如果您想阅读char char ch; while (input >> ch)