小编Spi*_*rix的帖子

为什么cin,期望一个int,在输入无效的情况下将相应的int变量更改为零?

我是C++的新手,我正在尝试编写一个非常基本的程序,但我遇到了初始化整数的问题.我把它剥离到一个仍然存在问题的非常小的程序:

#include <iostream>
using namespace std;

int main()
{
    cout << "Please enter your age\n";
    int age = -1;
    cin >> age;
    cout <<"\n\n Your age is " << age << "\n\n";
}
Run Code Online (Sandbox Code Playgroud)

我看了,如果我尝试输入一个字符串,例如abc在age变量,然后输入要失败和值应单独留在家中,因此它应该打印Your age is -1.

但是,当我运行此程序并键入时abc,它会打印出来Your age is 0.为什么?

c++

26
推荐指数
2
解决办法
2225
查看次数

为什么标准C++库使用全部小写?

只是好奇为什么C++标准库使用小写和下划线代替camelCase或PascalCase命名约定.

就个人而言,我发现后者在输入代码时更容易处理,但有没有合理的理由使用前者?

c++ coding-style lowercase c++-standard-library

25
推荐指数
2
解决办法
1万
查看次数

如何在谷歌colab改变主题?我需要像Jupyter笔记本那样的黑暗主题

如何更改颜色,字体大小和其他功能如何更改谷歌colab中的主题?我需要像Jupyter笔记本这样的黑暗主题.

themes google-colaboratory

23
推荐指数
2
解决办法
1万
查看次数

Java中的'import'与C/C++中的'#include'

Java中的'import'与C/C++中的'#include'的行为方式相同吗?具体来说,它是否包含它正在导入的整个库,还是只包含后续代码中调用的类和方法?

c c++ java import include

21
推荐指数
4
解决办法
2万
查看次数

如何将Android Studio项目导出为zip文件?

如何在Android Studio中以ZIP格式导出项目?

我一直在使用具有此功能的Eclipse.

java zip android project android-studio

20
推荐指数
5
解决办法
4万
查看次数

对于所有类型,%p格式说明符都需要显式转换为void*,而printf中的char*

我%p在Stack Overflow中已经阅读了很多关于C语言中格式说明符用法的答案,但似乎没有一个解释为什么void*所有类型都需要显式转换为char*.
我当然知道这样一个事实,即强制转换的要求void*与使用可变函数(参见本答案的第一条评论)有关,而非强制性要求.

这是一个例子:

int i;    
printf ("%p", &i);
Run Code Online (Sandbox Code Playgroud)

产生关于类型不兼容性的警告,并且&i应该进行铸造void*(根据标准的要求,再次参见此处).

虽然这一大块代码能够顺利编译,但没有关于类型转换的任何投诉:

char * m = "Hello";    
printf ("%p", m);
Run Code Online (Sandbox Code Playgroud)

如何char*从这一要求中"解脱"?

PS:可能值得补充的是我在 x86_64架构上工作,因为指针类型大小依赖于它,并且使用 gcc作为linux上的-W -Wall -std=c11 -pedantic编译器和编译选项.

c printf types casting void-pointers

17
推荐指数
3
解决办法
1157
查看次数

15
推荐指数
4
解决办法
1万
查看次数

用sscanf读取双倍时忽略'E'

我有输入如"(50.1003781N, 14.3925125E)".这些是纬度和经度.

我想解析这个

sscanf(string,"(%lf%c, %lf%c)",&a,&b,&c,&d);
Run Code Online (Sandbox Code Playgroud)

但是当%lf看到E数字后,它会消耗它并以指数形式将其存储为数字.有没有办法禁用它?

c c++ scanf

14
推荐指数
1
解决办法
402
查看次数

为什么在将main声明为`int main(void)`时传递命令行参数时没有错误?

情况1:

void hello(void) {
    //something
}

int main()
{
    hello(1); //error
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

案例2:

int main(void) {
    //something
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

执行:

./a.out something something //No error, Why?
Run Code Online (Sandbox Code Playgroud)

为什么没有错误?main将无法采取任何论点.那么为什么可以从命令行提供参数呢?

c program-entry-point command-line-arguments

14
推荐指数
3
解决办法
882
查看次数

为什么我不能用动态args设置printf的输出格式?

我想printf()用动态参数控制函数输出格式,如下面的代码所示:

    #include<stdio.h>

    int main(int argc,char ** argv)
    {
        printf(argv[1],"hello,world");
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

然后我编译并运行它:

$ gcc -o test test.c
$ ./test "\t%s\n"
Run Code Online (Sandbox Code Playgroud)

结果很奇怪:

\thello,world\n$
Run Code Online (Sandbox Code Playgroud)

为什么"\n"而且"\t"没有效果?

c printf arguments command-line-arguments

12
推荐指数
2
解决办法
1471
查看次数