gpt4 book ai didi

c - Printf 到 Fprintf

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:24 33 4
gpt4 key购买 nike

我想用sql命令创建一个文件:

CREATE TABLE t1(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t1 VALUES(1,13153,'thirteen thousand one hundred fifty three');
INSERT INTO t1 VALUES(2,75560,'seventy five thousand five hundred sixty');
... 995 lines omitted
INSERT INTO t1 VALUES(998,66289,'sixty six thousand two hundred eighty nine');
INSERT INTO t1 VALUES(999,24322,'twenty four thousand three hundred twenty two');
INSERT INTO t1 VALUES(1000,94142,'ninety four thousand one hundred forty two');

当我使用 printf 时它有效:

printf("INSERT INTO t1 VALUES(%d, %d, '", i, nbAlea);
NombreVersMots(nbAlea);
printf("');\n");

但是我不能使用 fprintf :

fprintf(fichier, "INSERT INTO t1 VALUES(%d, %d, '", i, nbAlea);
fprintf(fichier, NombreVersMots(nbAlea)); // <- HERE IS MY PROBLEM
fprintf(fichier, "');\n");

我找不到使用第二行的方法。

我给你你需要的程序:

char *one[]={"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
char *ten[]={"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
void pw(long n,char ch[])
{
if(n>19)
{
printf("%s %s ",ten[n/10],one[n%10]);
}
else
{
if(n) // pour eviter les espaces inutiles quand la boucle n'affiche rien
{
printf("%s ",one[n]);
}
}
if(n)
{
printf("%s",ch); // affiche 'million', 'thousand' ou 'hundred'
}
}

void NombreVersMots(long m)
{
pw((m/1000000), "million ");
pw(((m/100000)%10), "hundred ");
pw(((m/1000)%100), "thousand ");
pw(((m/100)%10), "hundred ");
pw(((m/1)%100), "");
}

如果你能帮助我,非常感谢!

最佳答案

您对 NombreVersMots 的调用会调用 pw,后者会调用 printf(而非 fprintf)。您可以通过将 pw 中的 printf 替换为 fprintf 并使用 NombreVersMotspw 来解决此问题> 采用 FILE* 参数传递给 fprintf

关于c - Printf 到 Fprintf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5322745/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com