当我在一个文件里写的时候我有了一个新行,但是我不明白为什么:
for(j = 0; j < p_bdClients->tabClient[i].nbComptes; j++){
fprintf(p_fichier, "%s %f\n",
p_bdClients->tabClient[i].folios[j].unCompte,
p_bdClients->tabClient[i].folios[j].solde);
}
我有:
compte1
solde1
compte2
solde2
我想要:
compte1 solde1
compte2 solde2
我在
p_bdClients->tabClient[i].folios[j].unCompte
或p_bdClients->tabClient[i].folios[j].solde
上没有换行符。我试过这个:
for(j = 0; j < p_bdClients->tabClient[i].nbComptes; j++){
printf("%s\n", p_bdClients->tabClient[i].folios[j].unCompte);
}
我得到了:
compte1
compte2
但是这个密码:
for(j = 0; j < p_bdClients->tabClient[i].nbComptes; j++){
printf("|%s| %f\n",
p_bdClients->tabClient[i].folios[j].unCompte,
p_bdClients->tabClient[i].folios[j].solde);
}
输出为-
| solde1
| solde2
我没有第一个“|”和
p_bdClients->tabClient[i].folios[j].unCompte
我不明白为什么。使用:
for(j = 0; j < p_bdClients->tabClient[i].nbComptes; j++){
for(w=0; w<strlen(p_bdClients->tabClient[i].folios[j].unCompte); ++w){
printf("%02hhx ", p_bdClients->tabClient[i].folios[j].unCompte[w]);
}
}
printf("\n");
我有:
68 79 70 6f 74 68 65 71 75 65 0d 63 68 65 71 75 65 0d 65 70 61 72 67 6e 65 32 0d
63 68 65 71 75 65 0d 63 61 72 74 65 2d 63 72 65 64 69 74 0d
68 79 70 6f 74 68 65 71 75 65 0d 63 61 72 74 65 2d 63 72 65 64 69 74 0d 65 70 61 72 67 6e 65 31 0d 63 68 65 71 75 65 0d 65 70 61 72 67 6e 65 32 0d
63 68 65 71 75 65 0d 63 61 72 74 65 2d 63 72 65 64 69 74 0d 65 70 61 72 67 6e 65 31 0d
68 79 70 6f 74 68 65 71 75 65 0d
63 68 65 71 75 65 0d 65 70 61 72 67 6e 65 32 0d
谢谢你的帮助
最佳答案
每条线末端的0x0d(例如“68 79 70 6f 74 68 65 71 75 65 0d”)是acarriage return。不要将其存储在unCompte
中(或设置为0x00),一切都会好起来的。
关于c - 返回以文件C语言编写的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19014098/