如何将int(整数)转换为字符串?我正在尝试创建一个函数,将a的数据struct转换为字符串以将其保存在文件中.
我试图弄清楚为什么会出现更大的问题,使用较小的程序作为例子.这个较小的程序不起作用,让我相信这是我对有缺陷的功能的理解.
据我所知,下面的程序应该初始化一个最多30个字符的字符串,然后将数字"5"取为9个有效数字,并将其转换为该字符串.然后程序应打印值"5.00000000".但是,程序打印值7.96788(...).为什么是这样?
#include <stdio.h>
int main()
{
char word[30];
sprintf(word, "%.9g", 5);
printf(word);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 在将整数转换为C中的字符串时,我对包含有点恼火stdio.h- 不会用不必要的文件描述符和其他代码来破坏二进制文件吗?或者,流,如果你使用标准的IO文件描述符标准输出,标准输入,或标准错误在你的代码只开了,如用printf,scanf,fprintf?如果我的代码只使用它,它还可以snprintf(3)吗?
我最接近的现成解决方案是将整数转换为双精度浮点,strfromd(3)使用不打印小数点的格式字符串.
bhuwansahni在如何将整数转换为C中的字符串中给出了一个很好的自己动手解决方案?
我不知道怎么用(联没有工作)itoa,_itoa或_fitoa_word虽然_fitoa_word不显示为一个功能nm /lib64/libc6.so.6.
我有这个代码,将用英语单词打印0到9之间的数字(例如一个用于1,两个用于2等).如果我想打印374怎么办?还是更大的东西,比如7549846451?
#include <stdio.h>
int main()
{
double sum;
if(scanf("%1f",&num)!=0)
{
if(num=(int)num)
{
switch((int)sum)
{
case 0:printf("zero\n");break;
case 1:printf("one\n");break;
case 2:printf("two\n");break;
case 3:printf("three\n");break;
case 4:printf("four\n");break;
case 5:printf("five\n");break;
case 6:printf("six\n");break;
case 7:printf("seven\n");break;
case 8:printf("eight\n");break;
case 9:printf("nine\n");break;
default:printf("not a digit"); break;
}
}else
{
printf("Invalid")
return 0;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)