程序转到换行符,屏幕上没有输出任何内容

时间:2015-07-24 07:40:19

标签: c++

我正在研究一个问题,即将字符串中每个句子的第一个字符大写。例如,如果字符串参数是“你好。我的名字是乔。你叫什么名字?”程序将返回'你好。我的名字是乔。你的名字是什么?“我的问题是,为什么在输入我要大写的字符串并按下后,程序进入换行符,屏幕上没有输出任何内容。

这是我的代码:

;with cte as
(
  select rn=row_number() over
  (
    partition by table_b_id
    order by [Value] desc
  ),*
  from tableA
)
select t1.table_b_id as [B.ID],
t2.Name as [B.Name],
t1.ID as [A.ID]
from cte t1
join tableB t2
on t1.table_b_id=t2.ID
where t1.rn=1;

1 个答案:

答案 0 :(得分:3)

你的错误在于

cout<<argument[i]<<endl;

您已将i更新为可能靠近'\0'的位置,然后尝试将其打印出来。

修复

退出循环后,仅打印argument。或者,如果您想在单独的行中打印每个句子,请记住要打印到i的索引。

return 0内部的while内容也显示不正确。我认为你打算在while阻止后放置它。

此外,从this comment of Paolo M开始,在whileif之后使用分号是您不想要的。

Live example after correction