#include <stdio.h>
struct x
{
char cGender;
char szBirthDt[200];
char szEmailAddr[200];
char szFullName[200];
char szStreetAddress[200];
char szCity[200];
char szStateCd[200];
char szZipCd[200];
};
struct y
{
char szFlightId[200];
int iRequestSeats;
};
int main(void) {
struct x customer;
struct y flight;
int iScanfCnt;
char* szInputBuffer = "m a bbbb cccccc\nsome text\nde fg hijkl mnop 10";
iScanfCnt
= sscanf(szInputBuffer
, "%1c %1s %4s %30[^\n] %30[^\n] %2s %2s %5s %s %d\n" , &customer.cGender
, customer.szBirthDt
, customer.szEmailAddr
, customer.szFullName
, customer.szStreetAddress
, customer.szCity
, customer.szStateCd
, customer.szZipCd
, flight.szFlightId
, &flight.iRequestSeats);
if (iScanfCnt < 10)
{
printf("invalid input when reading student data, only %d valid values. \n" , iScanfCnt);
printf("\tdata is %s\n", szInputBuffer
); return -1;
}
printf("%1c %10.2s %10.2s %30s %30s %10.2s %2s %5s %s %d\n" , customer.cGender
, customer.szBirthDt
, customer.szEmailAddr
, customer.szFullName
, customer.szStreetAddress
, customer.szCity
, customer.szStateCd
, customer.szZipCd
, flight.szFlightId
, flight.iRequestSeats);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgeAp7CiAgICBjaGFyIGNHZW5kZXI7CiAgICBjaGFyIHN6QmlydGhEdFsyMDBdOwogICAgY2hhciBzekVtYWlsQWRkclsyMDBdOwogICAgY2hhciBzekZ1bGxOYW1lWzIwMF07CiAgICBjaGFyIHN6U3RyZWV0QWRkcmVzc1syMDBdOwogICAgY2hhciBzekNpdHlbMjAwXTsKICAgIGNoYXIgc3pTdGF0ZUNkWzIwMF07CiAgICBjaGFyIHN6WmlwQ2RbMjAwXTsKCn07CgoKc3RydWN0IHkKewogICAgY2hhciBzekZsaWdodElkWzIwMF07CiAgICBpbnQgaVJlcXVlc3RTZWF0czsKfTsKCmludCBtYWluKHZvaWQpIHsKCXN0cnVjdCB4IGN1c3RvbWVyOwoJc3RydWN0IHkgZmxpZ2h0OwoJaW50IGlTY2FuZkNudDsKCWNoYXIqIHN6SW5wdXRCdWZmZXIgPSAibSBhIGJiYmIgY2NjY2NjXG5zb21lIHRleHRcbmRlIGZnIGhpamtsIG1ub3AgMTAiOwogICAgaVNjYW5mQ250ID0gc3NjYW5mKHN6SW5wdXRCdWZmZXIsICIlMWMgJTFzICU0cyAlMzBbXlxuXSAlMzBbXlxuXSAlMnMgJTJzICU1cyAlcyAlZFxuIgogICAgLCAmY3VzdG9tZXIuY0dlbmRlcgogICAgLCBjdXN0b21lci5zekJpcnRoRHQKICAgICwgY3VzdG9tZXIuc3pFbWFpbEFkZHIKICAgICwgY3VzdG9tZXIuc3pGdWxsTmFtZQogICAgLCBjdXN0b21lci5zelN0cmVldEFkZHJlc3MKICAgICwgY3VzdG9tZXIuc3pDaXR5CiAgICAsIGN1c3RvbWVyLnN6U3RhdGVDZAogICAgLCBjdXN0b21lci5zelppcENkCiAgICAsIGZsaWdodC5zekZsaWdodElkCiAgICAsICZmbGlnaHQuaVJlcXVlc3RTZWF0cyk7CgogICAgaWYgKGlTY2FuZkNudCA8IDEwKQogICAgewogICAgICAgIHByaW50ZigiaW52YWxpZCBpbnB1dCB3aGVuIHJlYWRpbmcgc3R1ZGVudCBkYXRhLCBvbmx5ICVkIHZhbGlkIHZhbHVlcy4gXG4iCiAgICAgICAgICAgICwgaVNjYW5mQ250KTsKICAgICAgICBwcmludGYoIlx0ZGF0YSBpcyAlc1xuIiwgc3pJbnB1dEJ1ZmZlcik7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgcHJpbnRmKCIlMWMgJTEwLjJzICUxMC4ycyAlMzBzICUzMHMgJTEwLjJzICUycyAlNXMgJXMgJWRcbiIKICAgICAgICAgICAgLCBjdXN0b21lci5jR2VuZGVyCiAgICAgICAgICAgICwgY3VzdG9tZXIuc3pCaXJ0aER0CiAgICAgICAgICAgICwgY3VzdG9tZXIuc3pFbWFpbEFkZHIKICAgICAgICAgICAgLCBjdXN0b21lci5zekZ1bGxOYW1lCiAgICAgICAgICAgICwgY3VzdG9tZXIuc3pTdHJlZXRBZGRyZXNzCiAgICAgICAgICAgICwgY3VzdG9tZXIuc3pDaXR5CiAgICAgICAgICAgICwgY3VzdG9tZXIuc3pTdGF0ZUNkCiAgICAgICAgICAgICwgY3VzdG9tZXIuc3paaXBDZAogICAgICAgICAgICAsIGZsaWdodC5zekZsaWdodElkCiAgICAgICAgICAgICwgZmxpZ2h0LmlSZXF1ZXN0U2VhdHMpOwogICAgICAgICAgICAKCXJldHVybiAwOwp9Cg==