代码块问题

Code blocks issues

本文关键字:问题 代码      更新时间:2023-10-16

嗨,我正在做一门课程,我很难处理我收到的错误消息,它们是:

error 'strtoul' was not declared in this scope
error 'print' was not declared in this scope
error 'printf' was not declared in this scope

我输入的代码是:

using namespace std;
int main (int argc, const char * argv[]) {
unsigned long int a, tmp;
a = strtoul("01011111000110001001001011010011",ULL,2);
print(a);
//We always work on "a" pattern
print(tmp = a >> 4);
print(tmp = a << 6);
print(tmp = a & (long int) 0x3);
print(tmp = a & (char) 0x3);
print(tmp = a | (unsigned short) 0xf00f);
print(tmp = a ^ (long int) 0xf0f0f0f0);
return 0;
}

//Function prints unsigned long integer in hexadecimal and binary notation
void print(unsigned long b)

{
    int i, no_bits = 8 * sizeof(unsigned long);
    char binary[no_bits];
    //Print hexadecimal notation
    printf("Hex: %Xn", b);
    //Set up all 32 bits with 0
    for (i = 0; i < no_bits; i++) binary[i] = 0;
    //Count and save binary value
    for (i = 0; b != 0; i++) {
        binary[i] = b % 2;
        b = b/2;
    }
    //Print binary notation
    printf("Bin: ");
    for (i = 0 ; i < no_bits; i++) {
        if ((i % 4 == 0) && (i > 0)) printf(" ");
        printf("%d", binary[(no_bits - 1) - i]);
    }
    printf("nn");
}

但我一直得到错误的台面:

error 'strtoul' was not declared in this scope
error 'print' was not declared in this scope
error 'printf' was not declared in this scope

无论我尝试什么,当我尝试声明它们时,我都会收到相同的错误消息,有什么帮助吗??

非常感谢

Ben

您需要在程序的顶部包含以下头文件:

#include <stdlib.h>
#include <stdio.h>

stdio库允许您执行输入/输出操作,stdlib库定义了几个通用函数,包括将字符串转换为无符号长整数。

您将希望将print方法移动到main之前,并且在调用strtoul时也应该将ULL更改为NULL,因为我认为这是一个拼写错误。你可以在我提供的链接中查看文档。