空白"cout"有什么作用?
what a blank "cout" does?
空白cout使用与否有什么不同?该代码给出了使用cout<lt;";
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long input, ans=1, vagsesh;
double vag;
cin>>input;
while(input>0 || vag>0)
{
vag = ((log10(input))/(log10(2)));
cout<<""; // if this is not used, it leads to a wrong answer
vagsesh = vag;
input -= pow(2,vagsesh);
if(input > 0)
{
ans++;
}
if(input==0)
{
break;
}
}
cout<<ans<<endl;
return 0;
}
cout<lt;";在这里
cout << ""
不是我认为的"空白cout"。"空白cout"如下:
std::cout;
事实上,std::cout << ""
会将操纵器考虑在内。示例:
#include <iostream>
#include <iomanip>
int main()
{
std::cout << std::setw(10);
std::cout << "";
}
输出:10个空格。
std::cout << ""
的另一个可观察的效果是,即使没有任何操纵器,也会将程序的输出重定向到一个文件中(使用类似myprogram.exe > file.txt
或./myprogram > file.txt
的东西(。std::cout
然后写入文件,即使内容保持不变,您也可以观察到文件的修改日期发生了变化。
至于您的代码,您在其中有未定义的行为:
double vag; cin>>input; while(input>0 || vag>0)
当您尝试读取vag
时,它没有初始化。也许这导致了奇怪的行为?当然,因为在其他正确的程序中,cout << ""
不可能改变结果。尝试这样做可以防止未定义的行为:
double vag = 0.0;
附言:#include <bits/stdc++.h>
不是标准C++。您应该将其更改为#include <iostream>
,或者通常更改为特定的头包含。CCD_ 11是一个坏习惯;即使它在示例程序中没有影响,初学者有时也会在头文件的全局范围内使用它,从长远来看,它可能会造成严重破坏。
相关文章:
- "using namespace std;"在C++的作用是什么?
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- 此代码中的" "是什么,它的基本作用是什么?
- 在模板参数中使用 {} 在 type_trait{} 中时,其作用是什么<T>?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- <<、>>算子在循环中的作用是什么
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- 当我尝试在函数内声明一个函数时,它不起作用?有什么建议吗?*源代码如下*
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- 在c++中,减号和加号对字符串的作用是什么
- i+=(i&-i) 有什么作用?它是便携式的吗?
- atomic_thread_fence的作用域是什么
- 我做错了什么?GetDiskFreeSpaceExA的功能根本不起作用