为什么C的printf格式字符串有%c和%s?
我知道它%c代表一个单个字符并%s表示一个以空字符结尾的字符串,但单独的字符串表示不足够吗?
Mathematica有一个名为的函数Range[],它执行以下操作:
Range[0, 10]
Range[-10, 0]
Run Code Online (Sandbox Code Playgroud)
Ant打印:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0}
Run Code Online (Sandbox Code Playgroud)
C++有这样的功能吗?
我正在阅读Gilles Dowek的编程原理:
他说,也可以在不给它初始值的情况下声明变量,并且我们必须小心不要使用已经声明没有初始值并且没有赋值的变量.这会产生错误.
注意:本书的作者提到在Java上声明没有初始值的变量的可能性.
那么,为什么这个变量声明有效呢?我什么时候开始使用它?
我正在学习C,而且我知道如何在Mathematica上编程.
在Mathematica上,我可以简单地通过编写来声明变量:
a=9
a="b"
a=9.5
Run Code Online (Sandbox Code Playgroud)
似乎Mathematica通过简单地阅读并在其上找到某种模式,自然地了解这是什么类型的变量.(Int,char,float).我猜Python有相同的功能.
在C语言中,我必须先说出它是什么:
int num;
char ch;
float f;
num=9;
ch='b';
f=9.5;
Run Code Online (Sandbox Code Playgroud)
我知道这延伸到其他languanges.所以我的问题是:为什么编程语言需要这种变量声明?
关于该主题的参考将非常有用.
我在这段代码中被困了一段时间:
#include <stdio.h>
const char *fn; int a;
int exists(const char *fname)
{
FILE *file;
if (file = fopen(fname, "r"))
{
fclose(file);
return 1;
}
return 0;
}
main(){
printf("Name:\n");
scanf("%s",&fn);
a=exists(&fn)
if(a==0){
fopen(&fn,"w");
fprintf(fn,"banhdhsjha");
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该程序时,它一直工作fprintf(fn,"banhdhsjha");,但它在这里崩溃(Windows给我一个错误),编译器(CodeBlocks)给了我以下通知:
从不兼容的指针类型传递'fopen'的参数1.
我试图fprintf在文件中写入数据,但我不知道该怎么做.你能帮助我吗?