【问题标题】:how to write a char variable in a file? [closed]如何在文件中写入char变量? [关闭]
【发布时间】:2020-04-07 05:33:56
【问题描述】:
void main {
char width;

width = 2;

FILE *file = fopen("file.txt", "w")
if (file != NULL) {      
fputc ('c', file) //writes correctly.
fputc (width, file) //has no effect
fclose(file);
}}

在上面的代码 sn-p 中,我试图将我定义的变量“宽度”写入某个文本文件。文件打开,第一个 c 被写入。我还想在文本文件中写入宽度值。我希望它包含 c2 ('c' + width)

【问题讨论】:

  • 让我猜猜……您的“无效”结论是基于您在某些文本编辑器中看到的?对于您正在编写的值2,您希望在那里看到什么?
  • 什么是宽度?请发布预期的输出。
  • 据我了解,字符应该出现在文本文件中,就像'c'一样。但是,是的,我的结论是基于我在文本编辑器中看到的。也许我没有看到全貌
  • 也许你想改成'2'
  • 在 ASCII 中,字符值 2 代表“文本开头”,是一个不可见字符

标签: c stdout


【解决方案1】:

你将宽度声明为一个字符,然后你给它一个整数值(2),你需要让它'2'而不是2。当你给一个字符分配这样一个整数值时,这个字符是根据ASCII table。 ASCII 2 是不可打印的字符 STX(文本开头)。可以发现'2'这个字符的ASCII码是50。

void main {
char width;

width = '2'; // Note my change.
width = 50; // This will work too. (You need only this line or only the above line, they are both equivalent based on the ASCII table)

FILE *file = fopen("file.txt", "w")
if (file != NULL) {      
fputc ('c', file) //writes correctly.
fputc (width, file) //has no effect
fclose(file);
}}

【讨论】:

    猜你喜欢
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2014-12-19
    • 2011-06-16
    • 2015-06-06
    • 2012-06-23
    相关资源
    最近更新 更多