The : is used to indicate that the format reading the data starts reading at the next non-blank column until it reaches a blank column in the data. If the : then a format may force reading more characters than you intend when the length of values vary. Note the value of x in the first data set and the error message in the first example step below. Then the behavior with the :
data example;
input x $10. y;
datalines;
short 23
longer 19
;
run;
data example2;
input x : $10. y;
datalines;
short 23
longer 19
;
run;
The @ holds the input pointer on the same line. One use is conditionally read data depending on the values of something read before the @ sign.