void 函数 C++ 错误 此声明没有存储类或类型说明符
void function c++ error this declaration has no storage class or type specifier
为什么会出现错误 此声明在 ReadFile 中没有存储类或类型说明符??
void ReadFile(ifstream &in, std::map<std::string,std::set<std::string>> &m)
{
while(true)
{
std::string word;
in>>word;
if(!in.good())break;
m[signature(word)].insert(word);
}
}
int main(){
std::ifstream in("ospd.txt");
std::map<std::string, std::set<std::string>> m;
ReadFile(in,m);
}
不确定(文件名)中的 ifstream 是否正确...有什么想法吗?
我发现了其中一个错误...在ifstream之前应该有一个std::。但是,它仍然不起作用。有什么线索吗?
#include <iostream>
#include <fstream>
#include<map>
#include<set>
#include<string>
void swap(char &ch1, char &ch2){
char tmp=ch1;
ch1=ch2;
ch2=tmp;
}
std::string ToLower(std::string s){
for(int i=0;i < s.length();i++)
{
if(s[i]<='Z' && s[i]>='A')
{
s[i]-='A'-'a';
}
}
return s;
}
std::string signature(std::string s)
{
s=ToLower(s);
for(int i=0;i<s.length();i++)
{ int minIndex=i;
for(int j=i+1;j<s.length();j++)
if(s[j]<s[minIndex]) minIndex=j;
swap(s[minIndex],s[i]);
}
return s;
}
void ReadFile(std::ifstream &in, std::map<std::string,std::set<std::string>> &m)
{
while(true)
{
std::string word;
in>>word;
if(!in.good())break;
m[signature(word)].insert(word);
}
}
typedef std::map<std::string, std::set<std::string>>::const_iterator MapIterator;
typedef std::set<std::string>::const_iterator SetIterator;
int main(){
std::ifstream in("ospd.txt");
std::map<std::string, std::set<std::string>> m;
ReadFile(in,m);
for (MapIterator iter = m.begin(); iter != m.end(); iter++)
{
std::cout << "Key: " << iter->first << std::endl << "Values:" << std::endl;
for (SetIterator set_iter = iter->second.begin(); set_iter != iter->second.end(); set_iter++)
std::cout << " " << *set_iter <<std:: endl;
}
system("pause");
return 0;}
您没有包含std::string/map/set/ifstream
所需的任何标头,也没有将ifstream
与std::
一起使用。
相关文章:
- 存储模板类型以强制转换回派生<T>
- 类型总是使用其大小存储在内存中吗
- C++ 将 CIN 值存储到任何类型的数组中
- 哪些存储了不完整类型的 STL 数据结构可以用作类成员?
- 在C++中,如何在变量中正确存储 BYTE 类型?
- 多维数组存储三种不同的数据类型?
- C++在一个映射中存储不同的指针类型(并处理销毁)
- C++ 将抽象类型的动态分配对象传递给函数并存储在向量中
- 张量(多维数组)是树前瞻数据的有效存储类型吗?
- 为什么C++不使用集中存储类型信息以实现高效的 RTTI
- 也许 monad:如何避免在 也许实例中存储 T 类型值<T>?
- 具有不同参数类型并存储类型的回调函数
- 在数据库中存储类型为“double”的变量为“DECFLOAT”
- 对象的存储类型,选择什么更好
- 作为参数传递时字符串字面值的存储类型
- 在实现类似std::variant的类时存储类型标记的问题
- 如何存储类型以便以后进行比较
- 从闪电战阵列获取存储类型
- 如何存储
类型的值 - 存储类型并以编程方式将另一个变量强制转换为存储的类型