C 字符串:: size_type错误
C++ string::size_type error
我正在使用Visual Studio 2013社区研究C 引物。我遇到了这个问题。当我编写以下代码时,VS显示Len不确定。
#include "stdafx.h"
#include<iostream>
#include<string>
using std::string;
using std::cout;
using std::cin;
using std::endl;
int main()
{
string line;
while (getline(cin, line))
if (line.size() > 10)
auto len = line.size();
cout << line.size() <<" "<<len <<endl;
return 0;
}
当我编写以下代码时,VS显示Len已定义并且效果很好。
#include "stdafx.h"
#include<iostream>
#include<string>
using std::string;
using std::cout;
using std::cin;
using std::endl;
int main()
{
string line("fewogwewjgeigeoewggwe");
auto len = line.size();
cout << line.size() <<" "<< len <<endl;
return 0;
}
我真的看不到它的原因。希望有一些很好的解释。THX很多!!!
您应该使用卷曲括号编写正确的代码块。在您的第一个示例中,len
超出范围
if (line.size() > 10)
auto len = line.size(); // <<< scope is local to this line
cout << line.size() <<" "<<len <<endl;
您想要的是
if (line.size() > 10) { // <<<
auto len = line.size(); // <<< scope is local to the block
cout << line.size() <<" "<<len <<endl;
} // <<<
您缺少括号
if (line.size() > 10)
{
auto len = line.size();
cout << line.size() <<" "<<len <<endl;
}
以上应该这样做。
更新:
学习新的编程语言后,我要做的第一件事是研究编码标准并坚持下去。这将在很多方面有所帮助,包括犯此类错误。
C 有许多编码标准,所以请选择http://en.wikipedia.org/wiki/coding_conventions#coding_conventions_for_languages
如果格式化代码,您将看到错误
while (getline(cin, line))
if (line.size() > 10)
auto len = line.size(); // variable len defined in this block ..
cout << line.size() <<" "<<len <<endl; // .. and not defined here
相关文章:
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- 将系数存储在头文件的数组中("does not name a type"错误)
- 尝试打开 ifstream 时出现"Incomplete type"错误
- 在 C++ 中使用命名空间时出现"does not name a type"错误
- 已声明时"Does not name a type"错误
- unordered_set .find 方法无法编译的 C++ "expression must have class type"错误
- 模板类和'invalid use of incomplete type'错误
- 在接口文件中使用模板时出现"not a type"错误的函数指针
- 我需要在不使用前向声明的情况下相互包含两个头文件,导致"incomplete type"错误
- 在 c++ 中,如果包含标头,为什么我会收到'does not a name of type'错误?
- 什么原因导致我的"‘FatalError’ in namespace ‘Foam’ does not name a type"错误?
- 为什么我会收到"Expression must have a class type"错误?(C++)
- 无法使用其他文件中的枚举:" does not name a type"错误
- 如何修复"static assertion failed: template argument not an integral type"错误?
- "Expression must have class type"错误
- "unresolved overloaded function type"错误并将运算符作为函数参数传递
- C++模板"class type"错误
- "Allocating an object of abstract class type"错误,尽管所有函数都有实现
- "does not have a class type"错误
- "expected unqualified-id before 'void'" & "string in class does not name a type" 错误