写入文件时遇到麻烦

时间:2015-10-16 06:18:03

标签: c++ io

我有一个简单的程序。它需要<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> 并输出用户刚刚输入的内容。我遇到的一些问题是代码:

  1. 出于某种原因,在我输入的过程中,它停止输入并退出程序。 [输入以粗体显示,以下输出不是]

    [---] ./ a.out的

    Stephen Harper

    Stephen Harper

    巴拉克·奥巴马

    巴拉克奥巴马

    唐纳德特朗普

    唐纳德特朗普

    Ben Carson

  2. 如果我将上述内容放入名为file1.txt的文件中并写入

    stdin
  3. ,它会起作用,但是如果我把上面的输入放到一个带有“.in”扩展名的文件中并做同样的事情,它就不会。

    1. 如果我更改输入中的naems,则会更改接受的输入行数。
    2. 如果有人告诉我发生了什么,我会很感激。

      由于

      我的代码是:

      ./a.out < file1.txt
      

1 个答案:

答案 0 :(得分:0)

你的支票是这封信确实是一封失败的信。

让我们从头开始:

  1. 对于输入line[0],您检查Barack Obama是否为字母。
  2. 对于输入line[1],您检查Donald Trump是否为字母。
  3. 对于输入line[2],您检查Ben Carson是否为字母。
  4. 对于输入line[3],您检查if (std::all_of(std::begin(line), std::end(line), [](const char& ch) { return std::isalpha(ch) || std::isspace(ch); })) { ... } else break; 是一个字母, 不是 ,所以你爆发了循环。
  5. 如果要确保所有输入都是字母(或空格),则需要在单独的循环中进行。或者使用standard algorithm function之类的std::all_of

    float f = 99.32f ;