sprintf inputting fieldwidth problem
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
David Phung
el 16 de Nov. de 2014
Comentada: Star Strider
el 17 de Nov. de 2014
This is my homework question:
Write a script that will generate a random integer from 1000 to 2000, ask the user for a field width, and print the random integer with the specified field width. The script will use sprintf to create a string such as ‘The # is %4d\n’ (if, for example, the user entered 4 for the field width) which is then passed to the fprintf function. To print (or create a string using sprintf) either the % or \ character, there must be two of them in a row.
The problem I have is the part where I am supposed to input the fieldwidth. Every time I try, it outputs a rounded number or something in scientific notation which i do NOT want. Below is my code:
high=2000;
low=1000;
number=rand*(high-low)+low
fieldwidth=input('Enter a field width: \n');
phrase=sprintf('Your number is %*.d \n', fieldwidth ,number)
%the fprintf is to compare with the sprintf to see if I'm doing it right
fprintf('Your number is %4d \n',number)
fprintf(phrase)
0 comentarios
Respuesta aceptada
Star Strider
el 16 de Nov. de 2014
This is a bit tricky, because you have to know that to print out a ‘%’ as literal output in fprintf or sprintf output, you need to enter ‘%%’. So your format string (including the double ‘\\’ to output a newline character) is in the ‘fmt’ assignment here:
fieldwidth = 10;
fmt = sprintf('Your number is %%%dd \\n',fieldwidth);
x = randi(1E10);
fprintf(fmt,x)
Adapt it as necessary to your own code. Also, look at ‘fmt’ to see what the sprintf call produces.
4 comentarios
Star Strider
el 17 de Nov. de 2014
My pleasure!
You’re not the first to re-read the assignment after spending some time on it and realise you overlooked something significant. (Personal experience here!)
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!