它看起来像它可能是,有(至少在C99),可以适用于长度修改int:%hhd,%hd,%ld和%lld指signed char,short,long和long long.甚至还有一个长度修饰符适用于double:%Lf均值long double.
问题是他们为什么省略float?按照模式,它可能是%hf.
操作系统:Linux,语言:纯C
我正在学习一般的C编程,以及在特殊情况下在UNIX下进行C编程.
printf()在使用fork()呼叫后,我发现了一个奇怪的(对我来说)函数的行为.
码
#include <stdio.h>
#include <system.h>
int main()
{
int pid;
printf( "Hello, my pid is %d", getpid() );
pid = fork();
if( pid == 0 )
{
printf( "\nI was forked! :D" );
sleep( 3 );
}
else
{
waitpid( pid, NULL, 0 );
printf( "\n%d was forked!", pid );
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产量
Hello, my pid is 1111
I was forked! :DHello, my pid is 1111
2222 was forked!
Run Code Online (Sandbox Code Playgroud)
为什么第二个"Hello"字符串出现在子输出中?
是的,这正是父母在开始时与父母一起打印的内容pid …
从下面的代码片段中可以看出,我已经声明了一个char变量和一个int变量.当代码被编译,就必须确定变量的数据类型str和i.
为什么我需要扫描我的变量,它是通过指定的字符串或整型变量时再次告诉%s或%d给scanf?当我声明我的变量时,编译器是否足够成熟以确定?
#include <stdio.h>
int main ()
{
char str [80];
int i;
printf ("Enter your family name: ");
scanf ("%s",str);
printf ("Enter your age: ");
scanf ("%d",&i);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 想在node.js中做输出格式化(sprintf类型功能),但在我自己编写之前,我想知道是否有类似内置的东西(我已经拖网文件无效)或者某人已经编写过模块.
非常感谢
我尝试了这个,但它没有用.
#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Run Code Online (Sandbox Code Playgroud) 说我有以下内容:
char* string = "Hello, how are you?";
Run Code Online (Sandbox Code Playgroud)
是否可以只打印出该字符串的最后5个字节?那么前5个字节呢?是否有一些变化printf可以允许这个?
我想做一些像printf("?", count, char)重复一次角色的事情count.
什么是正确的格式字符串来实现这一目标?
编辑:是的,显然我可以调用printf()循环,但这正是我想要避免的.
我正面临着sprintf的一个严重问题.
假设我的代码片段是:
sprintf(Buffer,"Hello World");
sprintf(Buffer,"Good Morning");
sprintf(Buffer,"Good Afternoon");
.
.
.
Run Code Online (Sandbox Code Playgroud)
几百个短跑......
如果我这样做,它会被覆盖.
如何避免使用sprintf覆盖.如果我在最后给出printf,我想看到所有的线条.