warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix]
时间: 2024-04-29 16:21:42 浏览: 211
这个警告表示在字面量和标识符之间缺少空格,而在 C++11 中需要添加空格。例如,在使用后缀的浮点字面量时,应该这样写:
```cpp
float myFloat = 3.14f;
```
而不是这样写:
```cpp
float myFloat = 3.14fMySuffix;
```
将 `f` 和 `MySuffix` 之间添加一个空格即可解决这个警告。
相关问题
/gcc/defaults.h:126:24: 警告:invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
This warning indicates that there is an issue with the syntax used in the code. Specifically, the warning is indicating that there is an invalid suffix on a literal in the code. The C 11 standard requires that there be a space between a literal and a string macro. This warning is telling you that there is no space between the literal and the string macro in the code, which is not compliant with the C 11 standard. To fix this warning, you should add a space between the literal and the string macro in the code.
ValueError: invalid literal for int() with base 10: '-
`ValueError: invalid literal for int() with base 10: '-'` 这个错误提示是在尝试将字符串 `-` 解析为整数时发生的。在上述的树结构程序中,当遇到输入文件中的 "-" 符号时,它通常表示某个节点没有子节点。然而,在尝试将这些字符串转换为整数以便进一步处理时,由于它们不是一个有效的十进制数字,因此引发了 `ValueError`。
解决这个问题的一种方法是修改代码,使其能够正确处理这样的情况。在解析输入数据时,可以先检查节点值是否为 `-`,如果是,则跳过而不是尝试转换。这里是修改后的部分:
```python
# ...其他代码...
for _ in range(n):
node, left, right = input().split()
if node == '-':
continue
left, right = int(left), int(right) if right != '-' else None
# ...接下来处理left 和 right...
```
现在,如果遇到 `-`,代码会直接跳过,不会引发错误。
阅读全文