因此,在编译以下代码时,我得到'initializer element not constant'错误:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
float wl = 2.0f;
float k = 2.0f * (float) M_PI / wl;
int main ()
{
//Do stuff
}
Run Code Online (Sandbox Code Playgroud)
如果我"float k"在main方法中移动,没有错误,但这对我来说不是一个选项,因为我需要浮动k作为全局变量.即使我改变它:
const float wl = 2.0f;
const float k = 2.0f * (float) M_PI / wl;
Run Code Online (Sandbox Code Playgroud)
错误仍然发生.我该如何解决?
所以我遇到了以下问题.我的目标是创建一个循环,一直持续用户输入,直到用户没有输入任何内容为'cin >>',将行留空,只需按ENTER键继续前进,此时程序应该打破循环并继续执行其余的程序.像这样的东西:
do {
cout << "\nEnter a name: ";
cin >> input1;
if (input1.empty())
{
break;
}
else
{
user_name = input1;
}
} while (!input1.empty());
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经尝试过使用empty()函数,但这不起作用,程序只是停留在循环中并且不会爆发,无论我按下多少次输入.它只是一直提示我输入一个名字.我也试过用类似的东西
if (input1 == "")
Run Code Online (Sandbox Code Playgroud)
但那也不起作用.有人可以帮忙吗?我如何突破这个循环?
更新:好的伙计们,我已经尝试了你的推荐,并且它有效!非常感谢!不幸的是,尽管getline函数有效,但它也为我创造了一个新问题.基本上,在第一个初始循环中,程序提示输入名称,我输入名称,名称存储在user_name中.但是,在SECOND循环中,程序甚至没有给我输入任何输入的机会,它只是打印"输入名称:",然后立即退出循环,继续执行其余的程序.为什么会这样?
所以我正在尝试使用这段代码进行基准测试:
#include <time.h>
#include <sys/time.h>
#include <sys/resource.h>
double get_time()
{
struct timeval t;
struct timezone tzp;
gettimeofday(&t, &tzp);
return t.tv_sec + t.tv_usec*1e-6;
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我不断收到此错误
error: storage size of ‘tzp’ isn’t known
warning: unused variable ‘tzp’
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
istream& operator>> (istream &in, vector <Customer>& cvect)
{
while (!in.eof())
{
//read from file into cvect vector
}
return cvect;
}
Run Code Online (Sandbox Code Playgroud)
为此,我得到"cvect类型的引用的无效初始化".我究竟做错了什么?