用前导0填充至9,然后移除.
01,02,03,04,05,06,07,08,09 - 10,11,12,14
到目前为止我有这个:
<?php $value = $count++;
printf("%02d", $value);
?>
Run Code Online (Sandbox Code Playgroud) 有没有办法修改printf以便在文件而不是控制台上输出字符串?
我想在互联网上找东西吃,发现这样的方法调用dup,dup2并fflush可能与此有关.
编辑:
也许我不清楚..事情是,这是在C考试问题..问题如下:
解释如何正常输出字符串到屏幕(使用printf())的程序如何将字符串输出到文件,而不更改上述程序中的任何代码.
如何使用UNIX的write系统调用将int,float或其他类型写入文件?我想这样做,而不使用像fprintf或或任何lib函数fwrite.
我想使用文件描述符而不是FILE*.
再次打开后,必须完全按照写入的方式读取文件,而无需知道要读取的大小.
我有一个UINT16无符号整数
4455, 312, 560 or 70.
Run Code Online (Sandbox Code Playgroud)
如何使用printf在最后两位数之前插入一个小数点,以便示例数字显示为
44.55, 3.12, 5.60 or 0.70
Run Code Online (Sandbox Code Playgroud)
如果没有printf解决方案,还有其他解决方案吗?
我不想使用浮点数.
#include <stdio.h>
int main()
{
printf(5 + "abhishekdas\n") ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出是hekdas.它是如何工作的?它不应该显示错误吗?如何编写5 + "abhishekdas"内部printf函数之类的东西?
我对uint_fast16_t的格式有问题
uint_fast16_t runningOrderNo;
std::string ATNativeConnector::_GetNextClOrdId()
{
time_t t = time(NULL);
struct tm* tim = localtime(&t);
std::stringstream sstr;
char temp[10];
sprintf(temp, "%02d%02d%02d%03u", tim->tm_hour, tim->tm_min, tim->tm_sec, ++runningOrderNo);
sstr << temp; //<< std::setfill('0') << std::setw(2) << tim->tm_hour << tim->tm_min << tim->tm_sec << ++runningOrderNo;
runningOrderNo %= 999;
//LOG4CXX_DEBUG(logger,"Generated " << sstr.str() << " second:" << tim->tm_sec << " order id");
return sstr.str();
}
Run Code Online (Sandbox Code Playgroud)
我收到这样的警告.
ATNativeConnector.cpp:6156:95:警告:格式'%u'需要'unsigned int'类型的参数,但参数6的类型为'uint_fast16_t {aka long unsigned int}'[ - Wformat =]
我从这个页面尝试了不同的格式,如果有人会帮助我,我会感激不尽.
我正在编写一个C代码,它从文件中读取并生成一个中间.c文件.为此,我使用fprintf()打印到该中间文件.
我怎么打印"?
为了使我的代码可移植,我尝试使用printf而不是echo.但是之后
printf "-dogs-cats"
Run Code Online (Sandbox Code Playgroud)
返回错误.本案的解决方法是:
printf "-";printf "dogs-cats"
Run Code Online (Sandbox Code Playgroud)
但是有一个通用的,可移植的命令(或一个选项printf),它将打印任意字符串作为文字/逐字,而不是尝试将字符串解释为格式?
我在BSD UNIX(在Mac上)工作,但我的目标是在其他UNIX风格中也可以使用的代码.
我目前正在学习printflibc 的功能,但我不了解,两者之间有什么区别:
printf("Test : %010d", 10);
Run Code Online (Sandbox Code Playgroud)
使用0标志和10宽度说明符
和
printf("Test : %.10d", 10);
Run Code Online (Sandbox Code Playgroud)
采用10精密符
产生相同的输出: Test : 0000000010
我只是尝试使用sprintf连接一些字符串,但我有这个问题,我不明白为什么我的程序在C中使用sprintf崩溃.为什么这个代码运行?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* dateTime = malloc(16*sizeof(char));
printf("Date: %s\n", __DATE__);
printf("Time: %s\n", __TIME__);
sprintf (dateTime, "%s, %s\0", __DATE__, __TIME__);
printf("%s", dateTime);
free(dateTime);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这不是吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* dateTime = malloc(16*sizeof(char));
//printf("Date: %s\n", __DATE__);
//printf("Time: %s\n", __TIME__);
sprintf (dateTime, "%s, %s\0", __DATE__, __TIME__);
printf("%s", dateTime);
free(dateTime);
return 0;
}
Run Code Online (Sandbox Code Playgroud)