我想知道是否有可能在C中使用OpenGL甚至没有抓到c ++,教程或基本源代码是最受欢迎的!
如果有可能,我的C技能有多深才能理解和使用它?我目前仍然主要学习,我喜欢咬我的东西,而不是咀嚼.
我已经找到了while((c = getchar()) != '\n' && c != EOF)在这里使用清除stdin 几次的例子,并尝试在通过fgets获取输入的循环中使用它.我需要刷新,因为循环从最后一个输入获取\n字符并再次运行它.
那么现在发生的是我现在必须按两次输入.为什么会发生这种情况,我该如何解决这个问题呢?
#define BUFFER_LIMIT 50
do
{
int c;
while ((c = getchar()) != '\n' && c != EOF);
printf("console> ");
fgets(input_buffer, BUFFER_LIMIT-1, stdin);
if(do_something(input_buffer))
break;
} while(strncmp(input_buffer, "quit", 4) != 0);
Run Code Online (Sandbox Code Playgroud) 自从我进入Scala后,我开始使用尾递归编写函数,并了解到C++编译器也支持它,甚至优化尾递归函数.现在我很好奇优化的可靠性,并且可以将它用于我的主循环或命令提示符之类的东西吗?
传统上我写了这样的命令提示:
bool running = true;
string input;
while(running_){
input = getInput();
executeCommand(input);
if(input == "quit") running_ = false;
}
Run Code Online (Sandbox Code Playgroud)
现在用这样的尾递归函数替换它会是一件坏事吗?
string input = "nothing";
void parseInput(){
if(input != "nothing") executeCommand(input);
getline(cin, input);
if(input != "quit") parseInput();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建.BMP文件.根据我的定义,BMP头是54个字节长.代码编译和一切,但在尝试打开文件时,我得到"错误的标题格式"错误.
如果我做一个sizeof(structtype)我得到56个字节而不是定义的54 - 如果我用值初始化一个结构,然后做一个sizeof(newStruct),我得到8个字节.因为我需要将54个字节写入文件,所以这很糟糕.
有没有办法让GCC不以这种方式改变结构大小?
这是结构的定义:
typedef struct
{
uint16_t typeSignature; // = "BM"
uint32_t filesize; //filesize in Bytes
uint32_t reserved; // = 0 for this program
uint32_t headerOffset; // = 54
} BmpFileHeader;
typedef struct
{
uint32_t infoHeaderSize; //size of header in byte. ( = 40)
uint32_t Width; //width of file in pixels
uint32_t Height; // height of file in pixels
uint16_t Colors; //colorbits per pixel (24 for 3byte RGB)
uint16_t bitsPerPixel;
uint32_t Compression; //compression mode; 0 for uncompressed. …Run Code Online (Sandbox Code Playgroud) 编译器如何处理类中的枚举定义是否有一般性的方式,如果它可以使用枚举,private:但在public:之后的部分中定义它吗?
代码示例:
class MyClass{
private:
myEnum myMember;
public
enum myEnum { A, B, C };
}
Run Code Online (Sandbox Code Playgroud)
它似乎使用gpp工作,但这是正确的用法?