我有一个简单的程序。它需要<Grid x:Name="loginGrid" Visibility="Collapsed" Margin="12,0,12,0">
<!--Adaptive trigger for setting grid width and height-->
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="9"/>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="titl.Text" Value="Test"/>
<Setter Target="Login.Content" Value="Test"/>
<Setter Target="loginGrid.Margin" Value="12,500,12,500"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="auto"/>
<RowDefinition Height=".25*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="7*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="titl" Grid.Row="0" Grid.Column="0" TextAlignment="Center" FontSize="{StaticResource PivotHeaderItemFontSize}" Grid.ColumnSpan="2"/>
<TextBlock Text="Register No" Padding="10,10,10,10" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="1" Grid.Column="0" TextAlignment="Center"/>
<TextBox x:Name="regNo" TextWrapping="Wrap" Text="" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="1" Grid.Column="1" InputScope="Number"/>
<Button x:Name="Login" Content="Login" Click="Login_Click" Background="{ThemeResource AppBarBackgroundThemeBrush}" FontSize="{StaticResource SearchBoxContentThemeFontSize}" Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Grid>
并输出用户刚刚输入的内容。我遇到的一些问题是代码:
出于某种原因,在我输入的过程中,它停止输入并退出程序。 [输入以粗体显示,以下输出不是]
[---] ./ a.out的
Stephen Harper
Stephen Harper
巴拉克·奥巴马
巴拉克奥巴马唐纳德特朗普
唐纳德特朗普Ben Carson
如果我将上述内容放入名为file1.txt的文件中并写入
stdin
,它会起作用,但是如果我把上面的输入放到一个带有“.in”扩展名的文件中并做同样的事情,它就不会。
如果有人告诉我发生了什么,我会很感激。
由于
我的代码是:
./a.out < file1.txt
答案 0 :(得分:0)
你的支票是这封信确实是一封失败的信。
让我们从头开始:
line[0]
,您检查Barack Obama
是否为字母。line[1]
,您检查Donald Trump
是否为字母。line[2]
,您检查Ben Carson
是否为字母。line[3]
,您检查if (std::all_of(std::begin(line), std::end(line),
[](const char& ch) {
return std::isalpha(ch) || std::isspace(ch);
}))
{
...
}
else
break;
是一个字母, 不是 ,所以你爆发了循环。如果要确保所有输入都是字母(或空格),则需要在单独的循环中进行。或者使用standard algorithm function之类的std::all_of
:
float f = 99.32f ;