所以我需要读取一个文件,然后在每次使用数组出现该字符时创建一个字数和一个字符数。每个单词以空格,逗号,句号等结尾。我还需要设置一个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;
}
答案 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
读取文件的每个字符并进行适当处理。