2014-04-15 7 views
-1

시간, 분 및 초를 초로 변환해야하지만 문제는 프로그램이 입력 3 형식 유형으로 사용할 수 있다는 것입니다. 첫 번째 형식은 54 (즉, 54 초), 45:56 (45 분 및 56 초), 때때로 12:35:12 형식 (12 시간 35)을 의미합니다. 분과 12 초. 내가 문자 CIN 사용해야하는 경우 모르겠어요 예를 들어 내가 입력하는 번호를 원하는 경우 초로 변환 ':' 나는이 일을 시도했지만 내가 입력하지 공백 문자 수 :시간, 분 및 초를 초로 변환하는 방법

char a; 
int nr,arr[1000],cnt=0,sum=0; 
while (a==':') 
{ 
    cin>>nr>>a; 
    cnt++; 
    arr[cnt]=nr; 
} 
if (cnt==1) sum=arr[1]; 
if (cnt==2) sum=60*arr[1]+arr[2]; 
if (cnt==3) sum=3600*arr[1]+60*arr[2]+arr[3]; 
+0

어떤 언어이, 그리고 어떻게 시간대 또는 타이머 관련이있다? 적절한 태그를 사용하십시오. 감사. –

+0

약간의 변경을했기 때문에 내가 지금 말하려고했던 것을 이해할 수 있습니까? – Anonymous

+0

언어를 이해하는 사람들이 귀하의 질문을 찾을 수 있도록 질문에 해당 언어로 태그를 지정하십시오. 그것은 나에게 C++처럼 보이지만 결코 알지 못합니다. –

답변

0

사용 strtokatoi :

#include <iostream> 
#include <cstring> 
#include <cstdlib> 
using namespace std; 

int main() { 
    char time[9]; 
    int sum; 

    cin>>time; 

    char *t1=strtok(time,":"); 
    char *t2=strtok(NULL,":"); 
    if (t2==NULL) 
     sum=atoi(t1); 
    else { 
     char *t3=strtok(NULL,":"); 
     if (t3==NULL) 
      sum=atoi(t1)*60+atoi(t2); 
     else 
      sum=atoi(t1)*3600+atoi(t2)*60+atoi(t3); 
    } 

    cout<<sum<<endl; 

    return 0; 
} 
+0

입력이 1000000000 : 1000000000 : 1000000000 일 때 나는 단지 요일 : 시간 : 분 : 초 형식으로 표시하려고합니다 (사용하지 않음). 우리가 단지 초 또는 분, 초 또는시, 분, 초를 가지고 있는지 여부를 알 수 없으므로 % 60입니다. – Anonymous

+0

당신이 말하는 것을 이해할 수 없습니다. '1000000000 : 1000000000 : 1000000000'은 무엇을 의미합니까? 이 질문을 별도의 질문으로 시도 할 수 있습니다. –

관련 문제