C++ 莫尔斯电码解码器在使用散列和计算空白C++;
我有一个程序,我必须写使用哈希,我不熟悉,也不真正理解。现在我很难计算我正在阅读的单词之间的空格,如果它是一个字母,它被一个空格隔开,一旦代码生成一个单词,当它被阅读时,它被两个空格隔开。我的解码功能运行良好,但我不知道如何计算空格。这里有一件事我已经试过了,但它不起作用。任何帮助都会很好C++ 莫尔斯电码解码器在使用散列和计算空白C++;,c++,C++,我有一个程序,我必须写使用哈希,我不熟悉,也不真正理解。现在我很难计算我正在阅读的单词之间的空格,如果它是一个字母,它被一个空格隔开,一旦代码生成一个单词,当它被阅读时,它被两个空格隔开。我的解码功能运行良好,但我不知道如何计算空格。这里有一件事我已经试过了,但它不起作用。任何帮助都会很好 string tmp; MORSE TABLE[20]; int j = 0, f = 0, k = 0; char x; while(!infile.eof()) { infile >>
string tmp;
MORSE TABLE[20];
int j = 0, f = 0, k = 0;
char x;
while(!infile.eof())
{
infile >> tmp;
infile.get(x);
if(x == ' ') //check if x is a space
{
infile.get(x); //read next character
if(x == ' ') //check and see if next char is a space
{
TABLE[k].insert(' '); //insert space into char array for printing
}
}
if(j >= f) //if true create new object
{
k++; f+=100;
}
TABLE[k].decode(tmp);//pass in string to decode
j++;
}//end while loop
任何帮助都将不胜感激。我不是一个非常先进的C++人,只是初学者。p> 流默认情况下跳过空白,您可以使用。但是,我建议您使用基于行的方法,否则您还需要处理换行:
string line;
while(getline(infile, line))
{ ...use line... }
顺便说一句:
不能保证您可以从流中读取。试着阅读并检查是否成功。以上已经做到了这一点while(!in.eof())
- 如果您提供准确的输入和准确的预期输出,这将有所帮助。从stringstream开始,用文件内容初始化,然后从中读取单个元素。在剥离任何不必要的内容后,在此处提供该代码以获得进一步帮助