当前位置: 首页 > 知识库问答 >
问题:

我如何去掉最后一个逗号?c是从一个文件中读取并向后读取数字

晏修诚
2023-03-14

c是从一个文件中读取并反向打印出数字。向前打印时,我去掉了逗号。但是我不知道如何对后场做同样的事情。

到目前为止,这就是我所拥有的:

cout<<"Forwards: ";
for (int i=0; i<cnt; i++){
    cout<<setprecision(2)<< fixed;
    if (i == cnt - 1)
    {
        cout << arr[i];
    }
    else
    {
        cout << arr[i] << ", ";
    }
}
cout<<endl;
//printing backwards 
cout << "Backwards: ";
for (int i=cnt-1; i>=0; i--){
    cout<<setprecision(2)<< fixed;
    if (i == cnt + 1)
    {
        cout << arr[i];
    }
    else
    {
        cout << arr[i] << ", ";
    }

向前的部分是正确的:1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9.00,10.00

但倒退是打印出来的

10.00,9.00,8.00,7.00,6.00,5.00,4.00,3.00,2.00,1.00,

我怎么去掉最后一个逗号

共有3个答案

乐正宜人
2023-03-14

只管写

if(i == 0)

而不是

if(i == cnt+1)

它将完成工作。

赵同
2023-03-14

在正向移动循环中,if(i==cnt-1)正在检查i是否位于数组的最后一个元素上。

在向后移动循环中,您想检查i是否在第一个元素上,但if(i==cnt 1)对于该检查永远不会为真,因为cnt 1是越界的。第一个元素位于索引0,因此使用if(i==0)代替:

cout << "Forwards: ";
cout << setprecision(2) << fixed;
for (int i = 0; i < cnt; ++i){
    if (i == cnt - 1){
        cout << arr[i];
    }
    else{
        cout << arr[i] << ", ";
    }
}
cout << endl;

cout << "Backwards: ";
cout << setprecision(2) << fixed;
for (int i = cnt-1; i >= 0; --i){
    if (i == 0){
        cout << arr[i];
    }
    else{
        cout << arr[i] << ", ";
    }
}
cout << endl;

或者,在循环外打印第一个输出值,然后在第二个输出值上开始循环:

cout << "Forwards: ";
cout << setprecision(2) << fixed;
cout << arr[0];
for (int i = 1; i < cnt; ++i){
    cout << ", " << arr[i];
}
cout << endl;

cout << "Backwards: ";
cout << setprecision(2) << fixed;
cout << arr[cnt-1];
for (int i = cnt-2; i >= 0; --i){
    cout << ", " << arr[i];
}
cout << endl;
公西国发
2023-03-14

尝试这样的事情:

bool first_item = true;
for (unsigned int i = 0u; i < LIMIT; ++i)
{
    if (! first_item)
    {
        std::cout << ", ";
    }
    first_item = false;
    std::cout << number;
}
std::cout << "\n";

上面的代码片段无论是向上还是向下,都可以工作。

重要的部分是“标志”,用于确定是否已打印第一项。

 类似资料:
  • 问题内容: 我有大量文件,所有文件都(应该)是在文件末尾附加一个前哨字符(1个字节)。如何读取最后一个字节(以确保它是字符)并将其截断为大小(即:删除字符)? 我知道我可以阅读整个内容,然后将其写回去减去最后一个字符,但是必须有一种方法可以获取特定的字节,不是吗? 问题答案: 您可以使用RandomAccessFile类查找文件的末尾,读取它,然后使用截断该文件。 更新: 这是一些代码: 注意:我

  • 问题内容: 我想使用字幕API。它要求视频文件的第一个和最后一个64kb的md5哈希值。我知道如何执行md5部分,只是想知道如何获得128kb的数据。 在Python中提供了API的示例,但遗憾的是我不明白。 http://thesubdb.com/api/ 任何帮助,将不胜感激。 问题答案: 尝试这样的事情

  • 目前,我有一个源文件,其中包含base64编码的数据(大小约为20MB)。我想从这个文件中读取,解码数据并写入一个。TIF输出文件。然而,我不想一次解码所有20MB的数据。我想从源文件中读取特定数量的字符/字节,解码并写入目标文件。我知道我从源文件读取的数据的大小必须是4的倍数,否则就无法解码?下面是我当前的代码,我一次解码了所有代码 如何从源文件中读取特定数量的字符,然后解码并写入输出文件,这样

  • 问题内容: 我想一次从文件中读取一个数字列表作为一个字符,一次检查一个字符,以检查该字符是什么,是否是数字,句点,+或-,e或E或其他一些字符。 ..然后基于此执行我想要的任何操作。如何使用已有的现有代码执行此操作?这是我尝试过的示例,但是没有用。我是python的新手。提前致谢! 问题答案: 从文件中读取行。以文本块的形式读取整个文件,然后遍历文本的每个字符:

  • 我一直在努力阅读java项目中的文本文件,我一整天都在寻找解决方案,我尝试了很多方法,但没有一个有效。其中一些:(另外,我必须使用文件和扫描程序类) 异常线程"main"java.nio.file.NoSuchFileExc0019: test\fileTest.txt 异常线程"main"java.lang.NullPointerExc0019 线程“main”java中出现异常。木卫一。Fil

  • 我的程序中有一个错误,使我的循环只读取输入字符串的最后一部分。我想让程序计算一个字符串中每个字符的个数。我不想要答案告诉我如何更有效地存储这些值,而不重复所有内容26次。请回答我在这里提出的问题。抱歉,如果这是一个副本!我只是不知道该说明什么,因为没有明显的错误。