#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// write code here
printf("%d\n", a);
return EXIT_SUCCESS;
}
static int a = 10;
Run Code Online (Sandbox Code Playgroud)
如何a在注释位置引用静态全局变量?
我知道amain 之前的那个地方不会导致这个问题。我只想知道是否有任何相关的语法可以做到这一点?
我在尝试为 std::array 重载运算符 << 时遇到问题。对于所有其他集合,我尝试以随意的方式进行:
std::ostream& operator<<(std::ostream& os, std::array<int> const& v1)
{
for_each(begin(v1), end(v1), [&os](int val) {os << val << " "; });
return os;
}
Run Code Online (Sandbox Code Playgroud)
但是编译器希望我添加有关数组大小的信息,这不会使它成为任何整数数组的通用解决方案。我知道如果我想为一般类型制作它,我将不得不使用模板,但现在我只想为整数数组制作它。
收到错误消息
Calculator.c:11:9: 警告:“num1”的类型默认为“int”[-Wimplicit-int] 11 | int 加法(num1, num2)"
代码仍然会运行,但想知道为什么会出现这种情况?
#include <stdio.h>
int main()
{
int num1;
int num2;
int addition(num1, num2)
{
return num1+num2;
}
int subtraction(num1, num2)
{
return num1-num2;
}
int multiply(num1, num2)
{
return num1*num2;
}
float devide(num1, num2)
{
return num1/num2;
}
printf("Still works");
}
Run Code Online (Sandbox Code Playgroud) 我只需要用 C 和 C 语言做一个大型项目,不需要外部库(SDL 除外)。我开始寻找用 C 语言进行某种课程的方法,是什么导致我这样做的:
typedef void (*voidFunction)(void);
typedef struct{
int id;
voidFunction printId;
} Object;
Object *new_Object(int id){
Object *newObject = malloc(sizeof(Object));
newObject->id = id;
void printId(){
static Object *this = NULL;
if(!this) this = newObject;
printf("%d\n", this->id);
};
newObject->printId = printId;
return newObject;
}
int main(){
Object *object = new_Object(5);
object->printId();
object->id++;
object->printId();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
主要输出:
5
6
Run Code Online (Sandbox Code Playgroud)
所以这可行,但是看起来合理吗?如果我在大型项目中使用这种架构,我是否应该预料到会遭到强烈反对?也许我在没有意识到的情况下输入了分配的内存?
#include <stdio.h>
int main()
{
printf("hello world");
return 55;
}
Run Code Online (Sandbox Code Playgroud)
我正在读一篇文章。main()函数的返回值显示了程序如何退出。程序的正常退出以返回值为零来表示。如果代码有错误、错误等,它将以非零值终止。
因为我向主函数返回一个非零值。我认为它一定会显示错误(因为我没有向主函数返回 0),但是当我编译并执行它时。它没有显示任何错误并且执行正常。你能解释一下为什么吗?提前谢谢
我使用的IDE是Clion。我想读取 .txt 文件中存储的行分隔数据。每行包含名字、姓氏、性别、ID 和年龄,分别为 str、str、str、int 和 int。
学生名单.txt
Olivia SWANSON F 29001 20
Emma ONEILL F 7900 19
Run Code Online (Sandbox Code Playgroud)
我尝试用它fscanf来读取数据。
FILE *fp;
char fname[20];
char sname[20];
char gender[1];
int ID;
int age;
fp = fopen("C:\\Users\\Catlover\\Desktop\\DSA\\Program2\\StudentList.txt", "r");
while(fscanf(fp, "%s %s %s %d %d", fname, sname, gender, &ID, &age)!= EOF)
{
printf("%s,%s,%s,%d,%d\n", fname, sname, gender, ID, age);
}
fclose(fp);
return 0;
Run Code Online (Sandbox Code Playgroud)
但它返回的结果看起来有点奇怪,因为它不输出第二个值。
结果是
FILE *fp;
char fname[20];
char sname[20];
char gender[1];
int ID;
int age;
fp = fopen("C:\\Users\\Catlover\\Desktop\\DSA\\Program2\\StudentList.txt", "r");
while(fscanf(fp, "%s …Run Code Online (Sandbox Code Playgroud) 我仍在学习 C++ 编程的基础知识,并尝试了 C++ 运算符的一些应用程序,但似乎有些事情我仍然不明白。
我尝试编写以下行来测试使用等于(==)作为三元运算符的可能性:
cout << "(2+2 == 2*2 == pow(2, 2)) == " << (2+2 == 2*2 == pow(2, 2)) << endl;
输出为0
所以,我怀疑这可能是因为 pow(2,2) 的返回值是双精度型,而前两个操作数的返回值是整数,因此我尝试了以下操作:
cout << "(2+2 == 2*2 == int(pow(2, 2))) == " << (2+2 == 2*2 == int(pow(2, 2))) << endl;
cout << "(double(2+2) == double(2*2) == pow(2, 2)) == " << (double(2+2) == double(2*2) == pow(2,2)) << "\n\n";
Run Code Online (Sandbox Code Playgroud)
两行代码的输出也是 0。
我还尝试使用括号来减少操作数的数量,但最终得到相同的输出。
假设我们有这个场景..
char *a[] = {"abcd","cdef"};
Run Code Online (Sandbox Code Playgroud)
我想知道字符串"abcd"的sizeof,我不想使用strlen.
请回答我如何获得字符串"abcd"的sizeof?
#include <stdio.h>
int main() {
float k;
scanf("%f", &k);
printf("%f", k);
}
Run Code Online (Sandbox Code Playgroud)
在这个简单的程序中,当我输入一个包含最多8位数的数字时,它会正确显示.
但如果我超过8位,即输入123456789输出123456792.
为什么会这样?那么有趣的事实是,如果我输入的任何数字,123456789并且123456796然后它总是显示123456792.
它是否与浮点数的8位小数精度有关?
我试图得到一个文件夹中所有文件的完整列表,如下所示:
#include<Windows.h>
#include<iostream>
#include<stdio.h>
using namespace std;
void main()
{
HANDLE dateiHandle;
WIN32_FIND_DATA wfindD;
dateiHandle = FindFirstFile(L"E:\\Roman\\PIC\\funpics\\*", &wfindD);
do
{
cout << wfindD.cFileName << endl;
} while (FindNextFile(dateiHandle, &wfindD));
FindClose(dateiHandle);
while (1)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么结果是这样的:
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
00AFFCCC
Run Code Online (Sandbox Code Playgroud)