Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言,更改写入控制台的数据_C_Graphics_Console_Printf_Gets - Fatal编程技术网

C语言,更改写入控制台的数据

C语言,更改写入控制台的数据,c,graphics,console,printf,gets,C,Graphics,Console,Printf,Gets,我正在写一个图书馆程序,我想把书上的数据组织在一个.txt文件中。我希望能够更改书名,而不是在屏幕上打印后重写书名 char bookName[30] = "A Clockwork Orange"; printf("Edit Book Name --> %s", bookName); gets(bookName); 如果我使用上面写的程序,它将是这样的: 编辑图书名称->\ubr/> 光标将停在这里(ux),我必须重写标题

我正在写一个图书馆程序,我想把书上的数据组织在一个.txt文件中。我希望能够更改书名,而不是在屏幕上打印后重写书名

    char bookName[30] = "A Clockwork Orange";
    printf("Edit Book Name --> %s", bookName);
    gets(bookName);
如果我使用上面写的程序,它将是这样的:
编辑图书名称->\ubr/> 光标将停在这里(ux),我必须重写标题

我想这样做:
编辑书名->发条橙色\ubr/> 我想更改屏幕上打印的bookName变量,而不是重写它


如果您能提供帮助,我将非常高兴。您可以使用以下代码:

char bookName[30] = "A Clockwork Orange";
    printf("Edit Book Name --> %s \n", bookName);
    printf("editing book name ...");
    scanf("%s",bookName);
    printf("your new Book Name --> %s", bookName);

    return 0;

您可以使用以下代码:

char bookName[30] = "A Clockwork Orange";
    printf("Edit Book Name --> %s \n", bookName);
    printf("editing book name ...");
    scanf("%s",bookName);
    printf("your new Book Name --> %s", bookName);

    return 0;

谢谢你,但我想要的还没有完全理解:)也许是因为我的英语有点差。现在事情是这样的; 我已经将图书馆中保存的书籍保存到一个文件(.txt)。我从文件中得到我想要的一本书的名字,编辑它,然后再次保存它。以第三本书为例: 在文件中:

  • 杀死一只知更鸟
  • 勇敢的新世界
  • 钟表装饰
  • 秘史

  • 我们从文件中读取第三本书,并将其分配给名为bookName的变量:

    fgets(bookName, 30, file); 
    
    现在我想编辑这本书,因为正如你在上面看到的,我拼错了书的标题(发条的装饰)。
    我希望程序:
    当我告诉我的程序我要编辑它时,程序会打印出来

    Edit Book Name -> A Clockwork Ornage
    
    我将用鼠标点击第15个字符('a'),我将删除2个字符(带退格)并键入“an”,现在控制台将写入:

    Edit Book Name -> A Clockwork Orange 
    
       
    
    按下“回车”键,我会将bookName变量的值更改为新值,新值为:“发条橙色”。在这里,我不能做到这里的部分。
    这就是我遇到的问题,我如何才能更改我用printf()打印到控制台上的内容。

    谢谢,但我想要的东西还没有完全理解:)可能是因为我的英语有点差。现在事情是这样的; 我已经将图书馆中保存的书籍保存到一个文件(.txt)。我从文件中得到我想要的一本书的名字,编辑它,然后再次保存它。以第三本书为例: 在文件中:

  • 杀死一只知更鸟
  • 勇敢的新世界
  • 钟表装饰
  • 秘史

  • 我们从文件中读取第三本书,并将其分配给名为bookName的变量:

    fgets(bookName, 30, file); 
    
    现在我想编辑这本书,因为正如你在上面看到的,我拼错了书的标题(发条的装饰)。
    我希望程序:
    当我告诉我的程序我要编辑它时,程序会打印出来

    Edit Book Name -> A Clockwork Ornage
    
    我将用鼠标点击第15个字符('a'),我将删除2个字符(带退格)并键入“an”,现在控制台将写入:

    Edit Book Name -> A Clockwork Orange 
    
       
    
    按下“回车”键,我会将bookName变量的值更改为新值,新值为:“发条橙色”。在这里,我不能做到这里的部分。

    这就是我遇到的问题,我如何用printf()更改我打印到控制台上的内容。

    Check@DavidRanieri。。。或者,可能更简单,
    rlwrap可执行文件
    ()感谢“rlwrap是一个readline包装器”我不知道如何安装这个库,你能帮忙吗@pmgrlwrap不是一个库;它是一个独立的可执行文件。您不必以任何方式更改代码,只需从命令行调用
    rlwrap yourexe…
    而不是
    yourexe…
    。应该有一个包供您分发。。。我不知道Windows。我对Windows非常业余,而且我的英语水平也很低,你能再解释一下吗?我不明白该怎么做才好。。。或者,可能更简单,
    rlwrap可执行文件
    ()感谢“rlwrap是一个readline包装器”我不知道如何安装这个库,你能帮忙吗@pmgrlwrap不是一个库;它是一个独立的可执行文件。您不必以任何方式更改代码,只需从命令行调用
    rlwrap yourexe…
    而不是
    yourexe…
    。应该有一个包供您分发。。。我不知道Windows。我对Windows非常业余,而且我的英语水平也很低,你能再解释一下吗?我不知道该做什么谢谢你的关注,但那不是我想要的。编辑图书名称->发条橙色将此输出发送到屏幕后,根据需要更改其显示“发条橙色”的位置,然后按enter键保存新值。例如:Edit Book Name->A Clockwork Orange 2(回车)我已将'2'添加到图书名称的末尾,现在变量'bookName'的新值将是'A Clockwork Orange 2'。好了,现在我明白了你想要什么,你必须迭代bookName才能知道标题的编号,因此,您必须遵循以下步骤:+迭代bookNmae以获取最后一个字符+使用函数isdigit检查最后一个字符是否为数字+如果isdigit为真,则应将数字存储在另一个变量中,然后递增itI理解您的意思,但这不是我想说的,我在下面详细解释了我的问题,我希望我们能相处得很好:)我只是希望能够更改printf()读取的值。这不是一个示例任务,我建议您构建一个桌面应用程序,以吸引您的注意,但这并不是我想要的。编辑图书名称->发条橙色将此输出发送到屏幕后,根据需要更改其显示“发条橙色”的位置,然后按enter键保存新值。例如:编辑图书名称->发条橙色2(输入)