小编Gri*_*han的帖子

全局变量'初始值不是常数'?

因此,在编译以下代码时,我得到'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)

错误仍然发生.我该如何解决?

c global-variables

5
推荐指数
2
解决办法
2005
查看次数

保持循环直到用户输入空白行?

所以我遇到了以下问题.我的目标是创建一个循环,一直持续用户输入,直到用户没有输入任何内容为'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循环中,程序甚至没有给我输入任何输入的机会,它只是打印"输入名称:",然后立即退出循环,继续执行其余的程序.为什么会这样?

c++

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

'tzp'的存储大小未知

所以我正在尝试使用这段代码进行基准测试:

#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)

任何帮助,将不胜感激.

c

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

错误:类型初始化无效

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类型的引用的无效初始化".我究竟做错了什么?

c++

-3
推荐指数
1
解决办法
86
查看次数

标签 统计

c ×2

c++ ×2

global-variables ×1