相关疑难解决方法(0)

使用goto有什么问题?

可能重复:
为什么使用goto不好?
GOTO仍被视为有害吗?

我通过xkcd进行了调整,看到了这个(几年前还读了一些关于它们的负面文章):
你的慢连接很糟糕,得到一个更快的看到这个图像
这究竟是什么问题?为什么goto甚至可以在C++中使用呢?

我为什么使用它们?

c++ goto

106
推荐指数
6
解决办法
7万
查看次数

什么是调试器,它如何帮助我诊断问题?

这是一个通用的问题,以帮助有程序问题的新程序员,但不知道如何使用调试器来诊断问题的原因.

这个问题涉及两类更具体的问题:

  • 当我运行我的程序时,它不会产生我期望的输出我给它的输出.
  • 当我运行我的程序时,它会崩溃并给我一个堆栈跟踪.我已经检查了堆栈跟踪,但我仍然不知道问题的原因,因为堆栈跟踪不能为我提供足够的信息.
  • 当我运行程序时,由于分段错误(SEGV)而崩溃.

[What is a debugger and how can it help me diagnose problems?](https://stackoverflow.com/q/25385173)

language-agnostic debugging

72
推荐指数
2
解决办法
7433
查看次数

如何避免使用goto并有效地破坏嵌套循环

我要说的是,goto在C/C++编程方面,使用被认为是一种不好的做法.

但是,给出以下代码

for (i = 0; i < N; ++i) 
{
    for (j = 0; j < N; j++) 
    {
        for (k = 0; k < N; ++k) 
        {
            ...
            if (condition)
                goto out;
            ...
        }
    }
}
out:
    ...
Run Code Online (Sandbox Code Playgroud)

我想知道如何有效地实现相同的行为而不使用goto.我的意思是我们可以做一些事情,例如condition在每个循环结束时检查,但是AFAIK goto将只生成一个汇编指令jmp.所以这是我能想到的最有效的方法.

有没有其他被认为是好的做法?当我说使用goto被认为是一种不好的做法时,我错了吗?如果我,这是否是使用它的好情况之一?

谢谢

c c++ goto c++11

30
推荐指数
5
解决办法
2670
查看次数

C++ 中的字符串不反转

我编写了一个程序来反转用户输入的字符串,但它不起作用。我使用Reverse the string in C++string reverse_name(name.rbegin(), name.rend())做到了这一点,但它不起作用并给了我错误:

从 'std::__cxx11::basic_string<char, 没有可行的转换,
      std::char_traits<char>、std::allocator<char> >::reverse_iterator'(又名
      'reverse_iterator<__normal_iterator<char *, std::__cxx11::basic_string<char> > >') 到
      'std::__cxx11::string'(又名'basic_string<char>')
  字符串reverse_word = (word.rbegin(), word.rend());

我的代码:

#include <iostream>
using namespace std;

int main()
{
  string word, reversed_word;
  cin >> word;

  reversed_word = (word.rbegin(), word.rend());
  cout << reversed_word;

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ c++11

-3
推荐指数
1
解决办法
670
查看次数

标签 统计

c++ ×3

c++11 ×2

goto ×2

c ×1

debugging ×1

language-agnostic ×1