【问题标题】:Char array issue [duplicate]字符数组问题[重复]
【发布时间】:2013-12-16 06:13:51
【问题描述】:

我正在尝试使用以下 C++ 代码在 Linux 上使用 Vi 编辑我自己的文件。我正在尝试使用字符数组命名文件,但是当我尝试从字符串复制到动态字符数组时,我在数组末尾得到奇怪的字符。这是什么原因?我该如何解决?对不起,它没有让我发布图片,所以我复制了屏幕上的内容并粘贴了它 谢谢

  newPath[0] = 'v';
  newPath[1] = 'i';
  newPath[2] = ' ';

 for(int i = 0 ; i < fileName.length(); i++)
 {
    stringLenght =3 + i;
newPath[stringLenght] = (char)fileName[i];
 }
     cout<<newPath<<" length:"<<fileName.length()<<endl;

Files are on current directory are listing below;

main.cpp   
a.cpp 
a.cpp.#h???

Which file do you want to edit?: a.cpp

location: . Locationlength:0

vi a.cpp.#�{� length:5

【问题讨论】:

    标签: c++ arrays linux char


    【解决方案1】:

    std::cout.operator&lt;&lt;(char*)(您的char[] 数组衰减为char*)使用\0 作为其终止符。不过,您似乎没有附加该 null 。

    here的问题差不多。

    一个简单的解决方案是手动将 \0 添加到 char 数组的末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 2014-02-22
      • 1970-01-01
      • 2022-01-03
      • 2019-07-28
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多