在忽略符号的同时分配变量? (C ++)

时间:2013-03-11 02:30:48

标签: c++ date cin

我想知道如果包含符号,您将如何从单行用户输入中分配多个变量。例如,如果用户输入是5-25-1995,是否可以将5,25和1995分配给不同的变量并忽略“ - ”的?我一直在尝试使用cin.ignore(),但到目前为止还没有运气。

感谢。

简短版本:

用户输入“3-24-1995”

期望的结果

int month是3, int day是24, int year是25,

2 个答案:

答案 0 :(得分:4)

char dummy;
int month, day, year;
cin >> month >> dummy >> day >> dummy >> year;

答案 1 :(得分:0)

因此,您的具体要求是输入格式为“3-24-1995” 可能是符合您需求的东西,并产生您想要的东西。

/* Code */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main ()
{
  char str[] ="3-24-1995"; // Your input that you will have some way of getting
  char * month, *day, *year;

  month=strtok (str,"-");

  day = strtok (NULL,"-");
  year = strtok (NULL,"-");

  // Here, converting to int, just because you were looking to convert it into 
  // int otherwise you could just leave it un converted too.

  printf("month: %d day: %d year: %d\n",atoi(month), atoi(day), atoi(year));
}