在int输入之后,C程序在Scanf使用时崩溃

时间:2018-05-01 15:53:09

标签: c scanf

可能是另一个愚蠢的错误,但我真的无法解决这个问题。 我正在写一个基本的多项式类,我的程序突然崩溃了几个整数的输入..我试图寻找一个解决方案,但我找不到一个:/

代码:

@Configuration
@EnableBatchProcessing
public class BatchConfiguration {

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Autowired
    private Environment environment;

    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
    //my reader
    @Bean
    ItemReader<EmployeeEmploymentDTO> restEmployeeReader(Environment 
    environment, 
                                             RestTemplate restTemplate) {
        return new RESTEmployeeReader(             

  environment.getRequiredProperty("rest.api.to.listemployees.ugs.api.url"), 
            restTemplate
        );
    }
 //my processor which is a separate class
    @Bean
    public RegistrationItemProcessor processor() {
        return new RegistrationItemProcessor();
    }
   //my writer which now only inserts one record for a read but i want to 
  insert multiple varying number of records for a read   

    @Bean
    public JdbcBatchItemWriter<Registration> writer(DataSource dataSource) {
        return new JdbcBatchItemWriterBuilder<Registration>()
            .itemSqlParameterSourceProvider(new 
     BeanPropertyItemSqlParameterSourceProvider<>())
            .sql("INSERT INTO registration //.....*ommitted insert statement
            .dataSource(dataSource)
            .build();
    }

    @Bean
    public Job importUserJob(JobCompletionNotificationListener listener, 
    Step step1) {
        return jobBuilderFactory.get("importUserJob")
            .incrementer(new RunIdIncrementer())
            .listener(listener)
            .flow(step1)
            .end()
            .build();
    }

    @Bean
    public Step step1(JdbcBatchItemWriter<Registration> writer) {
        return stepBuilderFactory.get("step1")
            .<EmployeeEmploymentDTO, Registration> chunk(10)
            .reader(restEmployeeReader(environment,restTemplate()))           
            .processor(processor())
            .writer(writer)
            .build();
    }

 } 

程序在打印“Test”之前退出,输入我使用输入数字+输入键。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Proof it compiles

您的代码似乎运行正常。 我为编译它所做的唯一改变是注释掉你使用malloc的行,并将你的print语句放在一行。

如果您使用的是较新版本的Visual Studio,则在使用scanf函数时会出现问题。您必须使用scanf_s或在顶部使用此行禁用警告:

#pragma warning(disable: 4996)

希望这有帮助。