总之,我真的很难用语法,有人可以帮我解决这个问题吗?

时间:2013-11-05 23:24:09

标签: c++

所以我需要读取一个文件,然后在每次使用数组出现该字符时创建一个字数和一个字符数。每个单词以空格,逗号,句号等结尾。我还需要设置一个tolower和一个方程式,用x-'a'函数或类似的东西将字母设置为正确的数组。

来自puTTy的错误列表(我知道这个糟糕的程序,但它是必需的)

  

project8.cpp:在函数âintmain()â:中   project8.cpp:17:错误:âfile1â未在此范围内声明
  project8.cpp:18:错误:预期â在“之前”   project8.cpp:36:错误:预期â在输入结束时

#include <iostream>
#include <string>
using namespace std;

    int in_word = false;
    int word_count = 0;
    char ch;
    char low_case;
    int char_count[26];
    int i;

int main()
{
    for (i=0; i<26; i++)
    char_count[i]=0;

cin.get(file1.txt)
while('\n' !=(ch=cin.get(file1.txt)))
{
if (' ' == ch || '\n' == ch || '\t' == ch)
    in_word = false;
else if (in_word == false)
    {
    in_word=true;
    word_count++;
    }
else low_case=tolower(ch);
    char_count[int(low_case)-int('a')]++;
}

cout << file1.txt;
cout << words << " words" << endl;
for (i=0; i<26; i++)
    if(count[i] !=0)
    cout << count[i] << " " << char(i+'a') << endl;
}

2 个答案:

答案 0 :(得分:1)

让我们玩编译器!

您无法命名变量file1.txt,将其命名为file1

另外,你忘记了行尾的分号;,所以

cin.get(file1.txt)

应该是

cin.get(file1);

我不太清楚你在哪里定义这个变量,所以你可能会错过像

这样的声明
const char* file1="file1.txt";

此外,您在此处的for循环后开始尝试访问某个变量count

count[i]

您的意思是使用char_count吗?

答案 1 :(得分:1)

第一个问题是您尚未声明file1。有些不清楚file1.txt究竟是什么意思:它的编写方式似乎是一个类型的对象,其成员名为txt,类型为char*或{{ 1}}(使用常量char[N])。从它的外观来看,你实际上想要打开一个名为N的文件。这看起来像这样:

file1.txt

之后,您当然会使用std::ifstream in("file1.txt"); 而不是in来读取文件。例如,您可以使用

std::cin

读取文件的每个字符并进行适当处理。